About this file Data Fields:

library(dplyr)

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
library(ggplot2)
Warning: package ‘ggplot2’ was built under R version 4.3.2
library(tidyr)

Attaching package: ‘tidyr’

The following object is masked _by_ ‘.GlobalEnv’:

    billboard
library(car)
Warning: package ‘car’ was built under R version 4.3.2Loading required package: carData
Warning: package ‘carData’ was built under R version 4.3.2
Attaching package: ‘car’

The following object is masked from ‘package:dplyr’:

    recode
library(MASS)

Attaching package: ‘MASS’

The following object is masked from ‘package:dplyr’:

    select
library(repr)
Warning: package ‘repr’ was built under R version 4.3.2
install.packages('pals')
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/Natalie/AppData/Local/R/win-library/4.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.3/pals_1.8.zip'
Content type 'application/zip' length 1905378 bytes (1.8 MB)
downloaded 1.8 MB
package ‘pals’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\Natalie\AppData\Local\Temp\RtmpeUeyj3\downloaded_packages
library(pals)
Warning: package ‘pals’ was built under R version 4.3.2
install.packages('broom')
Error in install.packages : Updating loaded packages
ecars_raw = read.csv('EV_cars.csv')
ecars_raw
NA
#rename some of the columns
ecars_raw = ecars_raw %>% rename(Price = Price.DE., Acceleration = acceleration..0.100.)

# extract the Make of each car into its own column
make = strsplit(ecars_raw$Car_name, split = ' ')

make_ = c()
n = length(make)

for (i in 1:n) {
  make_[i] = make[[i]][1]
}

ecars_raw$Make = make_
# move columns so continuous variables are together 
ecars_raw = ecars_raw %>% relocate(Make, .before = Car_name_link)
ecars_raw = ecars_raw %>% relocate(Battery, .after = Car_name_link)
ecars_raw
ecars_raw = ecars_raw %>% filter(!is.na(Fast_charge))
ecars = ecars_raw %>% filter(!is.na(Price))
ecars_missing_price = ecars_raw %>% filter(is.na(Price))

This data required minimal processing. I created a Make variable by extracting the first word from the Car_name variable. I also renamed several columns to make them more intuitive for example acceleration..0.100. to Acceleration. I removed the two cars that did not have Fast Charge (the Renault Twingo Electric and the e.Go e.wave X) capability because this was an important feature in the linear regression and was impacting their price. Finally I made sure all the continuous variables were next to each other to simplify calling them. I split the dataframe into two. One with prices(307 objects) and one with missing prices (51 objects).

After cleaning the data 45 unique car makes were included in the ecars data used to create the linear model and 22 unique car makes were included in the data with missing prices. Additionally 14 makes that have 10 or more car models are highlighted throughout the project.

length(ecars$Price)
[1] 307
ecars$upper.limit
NULL

BatvRange
BatvPrice

AccvPrice

Colinearity with predicting Range based n battery

ecars %>% group_by(Make) %>%
  filter(n() >= 10) %>%o
  ggplot(., aes(x = Battery, y = Price)) +
  

RBmodel = lm(Range ~  Battery, data = ecars)
summary(RBmodel)

Call:
lm(formula = Range ~ Battery, data = ecars)

Residuals:
     Min       1Q   Median       3Q      Max 
-152.015  -27.740    6.636   34.682  123.700 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  39.1986    10.8427   3.615 0.000351 ***
Battery       4.6424     0.1461  31.780  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 52.04 on 305 degrees of freedom
Multiple R-squared:  0.7681,    Adjusted R-squared:  0.7673 
F-statistic:  1010 on 1 and 305 DF,  p-value: < 2.2e-16
plot(RBmodel) 


PBmodel = lm(Price ~  Battery, data = ecars)
summary(PBmodel)

Call:
lm(formula = Price ~ Battery, data = ecars)

Residuals:
   Min     1Q Median     3Q    Max 
-52248 -13991  -4777   7763 117008 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -17283.30    5122.18  -3.374 0.000836 ***
Battery       1188.09      69.01  17.216  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 24580 on 305 degrees of freedom
Multiple R-squared:  0.4929,    Adjusted R-squared:  0.4912 
F-statistic: 296.4 on 1 and 305 DF,  p-value: < 2.2e-16
plot(PBmodel) 


ATmodel = lm(Top_speed ~ Acceleration, data = ecars)
summary(ATmodel)

Call:
lm(formula = Top_speed ~ Acceleration, data = ecars)

Residuals:
    Min      1Q  Median      3Q     Max 
-38.133 -14.247  -3.351  11.352  61.413 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  253.9440     2.8706   88.46   <2e-16 ***
Acceleration  -9.9663     0.3633  -27.43   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 19.62 on 305 degrees of freedom
Multiple R-squared:  0.7116,    Adjusted R-squared:  0.7107 
F-statistic: 752.6 on 1 and 305 DF,  p-value: < 2.2e-16
plot(ATmodel)


model = lm(Price_pow ~ Efficiency_pow + Range + Speed_pow + Fast_charge, data = ecars)
summary(model) 

Call:
lm(formula = Price_pow ~ Efficiency_pow + Range + Speed_pow + 
    Fast_charge, data = ecars)

Residuals:
       Min         1Q     Median         3Q        Max 
-7.126e-04 -2.348e-04 -3.221e-05  2.337e-04  1.205e-03 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)     2.390e-02  7.794e-04  30.670  < 2e-16 ***
Efficiency_pow -3.138e-03  1.327e-04 -23.654  < 2e-16 ***
Range          -2.586e-06  2.931e-07  -8.821  < 2e-16 ***
Speed_pow      -1.832e-03  1.984e-04  -9.237  < 2e-16 ***
Fast_charge    -7.379e-07  1.340e-07  -5.506 7.87e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.0003282 on 302 degrees of freedom
Multiple R-squared:  0.841, Adjusted R-squared:  0.8389 
F-statistic: 399.2 on 4 and 302 DF,  p-value: < 2.2e-16
plot(model)


#battery speed_pow efficiency and fast charge 

With transformation done to price

ecars_missing_price$Speed_pow = (ecars_missing_price$Top_speed ** .25)
ecars_missing_price$Efficiency_pow = (ecars_missing_price$Efficiency ** .25)
test = predict(model, ecars_missing_price, interval = 'prediction')
test_2_dollars = (1/(test))^2
ecars_missing_price
test_2_dollars
         fit       lwr      upr
1  114303.84 188896.41 76531.58
2   89113.37 137384.99 62443.12
3   55619.74  77576.44 41819.01
4   54659.60  75919.87 41223.42
5   47757.60  64889.53 36612.56
6   35948.52  46773.09 28488.93
7   82964.83 125423.41 58914.43
8   72005.39 105794.99 52153.52
9  116264.67 193134.93 77588.69
10  62155.39  88708.61 45958.31
11  51529.20  70813.69 39170.12
12  72409.64 106452.41 52424.37
13  51529.20  70813.69 39170.12
14  75973.53 112737.12 54647.63
15  72695.12 106821.49 52648.56
16  62336.75  88673.56 46202.47
17  80566.83 121343.96 57358.50
18  58613.51  82453.04 43795.56
19  89458.26 138273.53 62575.80
20  66785.24  96353.75 49000.18
21  81626.52 123050.92 58076.92
22  50205.93  68693.77 38288.94
23  57039.24  79877.89 42759.68
24  38018.75  49838.12 29954.77
25  71684.84 105545.90 51844.75
26  91085.12 141305.37 63557.03
27  53897.40  74798.88 40673.54
28  50205.93  68693.77 38288.94
29  86129.38 131353.77 60796.64
30  64293.64  92120.53 47405.71
31 148097.01 268259.59 93731.09
32  47913.40  65059.31 36749.78
33  42545.76  56726.05 33087.13
34  50922.36  69841.50 38765.85
35  98325.01 155665.09 67688.90
36  82807.58 125301.65 58765.47
37  34214.65  44253.67 27241.08
38  56100.49  78282.57 42166.40
39  36394.05  47428.21 28806.23
40  60441.11  85513.51 44973.03
41  44078.10  59166.88 34103.20
42  60763.89  86018.70 45194.71
43  67192.92  97054.78 49258.43
44  41602.07  55261.29 32445.70
45  27648.07  34838.28 22474.16
46  35005.02  45428.65 27796.95
47  33276.68  42906.07 26559.49
48  55272.82  77121.78 41546.62
49  49975.26  68511.06 38057.87
50  56337.02  78895.92 42232.70
51  48372.20  65925.83 36998.79
ecars_missing_price$predicted_price = (test_2_dollars[,1])
ecars_missing_price
test2 = predict(model, ecars, interval = 'prediction')
test3 = predict(model, ecars, interval = 'confidence')
test2_2_dollars = (1/(test2))^2
test3_2_dollars = (1/(test3))^2
test2_2_dollars
          fit       lwr       upr
1    66145.66  95294.44  48580.54
2    45919.82  62037.58  35355.21
3    44897.70  60325.70  34711.68
4    46366.59  62669.37  35687.07
5    57783.36  81202.29  43207.43
6    53860.25  74816.12  40617.95
7    63380.73  90573.13  46821.27
8    50511.32  69183.64  38491.92
9    34987.91  45341.08  27814.71
10   56245.60  78643.63  42212.94
11   60322.87  85510.97  44822.36
12   41849.83  55663.04  32606.32
13   49975.06  68330.72  38132.52
14   43291.62  57893.72  33590.32
15   78777.40 118266.99  56209.15
16   44574.90  59862.51  34474.98
17  108138.96 175847.21  73156.59
18   58558.78  82322.78  43775.30
19   33627.90  43372.65  26833.12
20   58391.34  82221.31  43598.31
21   92139.96 143223.47  64208.33
22   43486.93  58155.33  33741.68
23   42132.06  56066.25  32813.74
24   26018.13  32536.69  21278.94
25   63291.41  90383.37  46778.39
26   75083.89 111076.00  54123.24
27   42390.29  56471.40  32987.35
28   51651.83  71029.73  39243.81
29  109166.29 177067.64  73972.74
30   49115.76  66954.13  37561.25
31   44547.48  59853.56  34441.61
32   52372.98  72180.79  39726.46
33   69150.75 101164.83  50237.62
34   55485.91  77381.56  41721.63
35   92450.64 143587.49  64460.56
36   92396.16 143509.17  64420.67
37   39846.85  52587.30  31232.21
38   55435.06  77345.08  41669.78
39   56686.11  79306.56  42525.08
40   45525.12  61343.75  35120.65
41   41877.97  55677.63  32638.48
42   33947.67  43847.49  27057.97
43   97561.04 153511.46  67435.76
44   36698.50  47878.64  29021.83
45  119945.79 200724.10  79673.26
46   51387.12  70753.32  39006.77
47   74363.73 109941.32  53627.71
48   31254.70  39971.72  25106.80
49   50017.16  68448.82  38139.44
50   67020.44  97652.54  48829.17
51  108668.84 177371.31  73338.11
52   64053.49  92989.92  46788.18
53   38574.96  50685.41  30338.11
54   58650.78  82665.66  43761.55
55   32870.15  42263.28  26293.01
56   57421.49  80582.90  42979.95
57   58277.47  81902.79  43574.52
58   77051.01 114638.46  55320.93
59   36394.05  47428.21  28806.23
60  137238.83 239824.73  88749.16
61   52531.85  72507.49  39803.06
62   71684.84 105545.90  51844.75
63   58367.40  82260.56  43552.30
64   44758.82  60135.91  34605.70
65   36829.29  48073.55  29113.82
66  161878.33 298003.91 101484.70
67   64367.45  92204.84  47468.06
68   51621.91  70962.68  39231.73
69   47207.74  63957.33  36269.77
70   47392.47  64459.97  36304.47
71   39251.21  51687.21  30817.67
72   60172.15  85155.95  44764.13
73   55098.13  76633.83  41512.27
74   51537.76  70825.89  39176.45
75   95349.28 150116.22  65882.25
76   90724.23 140365.18  63420.34
77   63246.89  90232.05  46778.20
78   75011.12 111038.51  54046.94
79   54993.54  76600.44  41388.86
80   79847.51 119870.21  56973.78
81  112711.37 185108.32  75765.86
82   70568.44 103630.87  51131.05
83   45478.70  61346.25  35056.70
84   32150.11  41237.00  25766.51
85   69806.96 101792.80  50831.04
86   33179.82  42749.22  26497.76
87   87954.60 135098.37  61785.13
88   35166.68  45627.02  27930.79
89   85531.70 130436.23  60376.65
90   51537.76  70825.89  39176.45
91  103915.93 166712.86  70918.29
92   47878.71  65067.78  36699.60
93   72079.29 106230.58  52094.31
94   42236.80  56237.87  32880.89
95  114174.19 188590.51  76468.42
96   65364.07  93853.42  48121.65
97   53813.43  74655.20  40621.06
98   56686.11  79306.56  42525.08
99   89705.83 138383.81  62832.11
100  49975.06  68330.72  38132.52
101  59484.79  83894.31  44363.38
102  52550.21  72461.05  39846.21
103 123940.57 209132.43  81900.17
104  39044.42  51386.15  30668.56
105  50374.68  68965.48  38400.67
106  59676.54  84379.75  44423.98
107  40568.37  53728.19  31711.79
108  66315.22  95530.04  48708.23
109  26455.68  33144.16  21604.97
110  51773.54  71416.50  39246.53
111 110842.52 180504.94  74915.54
112  99173.52 156726.52  68354.04
113  40119.43  53059.07  31394.72
114  43021.87  57424.24  33429.20
115  36698.50  47878.64  29021.83
116  62778.35  89669.30  46392.26
117 123994.99 209810.04  81793.06
118  53463.29  73971.07  40436.67
119  53516.45  74174.39  40424.54
120  39250.74  51693.20  30814.27
121  38078.78  49972.72  29976.05
122 101951.84 162334.22  69921.68
123  61657.16  87758.74  45679.28
124  43457.87  58225.33  33671.13
125  52096.89  71728.51  39546.39
126  81812.36 123254.53  58233.98
127  47893.80  65010.51  36744.18
128  52639.52  72753.74  39845.00
129 138041.58 241504.96  89205.91
130  90739.77 140424.79  63420.40
131  45607.12  61495.41  35166.09
132  86127.23 131979.31  60598.31
133  58032.85  81512.63  43409.63
134  65921.32  95011.66  48401.06
135  42356.24  56406.65  32969.51
136 113150.13 186052.82  76002.26
137  67714.10  98135.58  49522.41
138  57936.65  81346.37  43349.78
139  64274.61  91986.32  47431.22
140  54227.22  75215.96  40938.75
141  90304.08 139331.02  63243.70
142  39428.40  51979.68  30929.60
143  56558.51  79024.64  42470.02
144  61815.65  87818.07  45859.28
145  75520.56 112114.99  54304.94
146  56686.11  79306.56  42525.08
147  90724.23 140365.18  63420.34
148  70978.93 103830.65  51568.84
149  31041.04  39661.32  24953.68
150 186158.67 362093.43 113095.03
151  53009.90  73214.78  40146.00
152  38908.72  51172.60  30578.11
153 108299.47 175242.17  73498.98
154  38349.21  50372.13  30168.29
155  35880.83  46681.54  28436.95
156  44528.85  59754.08  34459.75
157  58944.79  82997.11  44012.91
158  33154.68  42678.62  26496.36
159  44652.54  60077.10  34486.93
160  36458.84  47535.47  28846.72
161  94111.74 147015.07  65365.61
162  93614.58 145990.53  65093.95
163  59484.79  83894.31  44363.38
164  49626.93  67773.04  37901.00
165  55856.04  77974.95  41969.43
166  47193.92  64023.09  36223.13
167  97858.64 154613.10  67458.00
168  38737.06  50923.35  30454.05
169  36093.65  46991.61  28589.84
170  44390.54  59535.71  34367.07
171  37700.26  49390.59  29717.84
172  62202.79  88449.42  46115.82
173  67301.67  97421.90  49262.41
174  58277.47  81902.79  43574.52
175  44855.58  60299.62  34665.81
176  91308.97 141381.69  63795.17
177 105982.67 170620.20  72165.30
178 107717.27 174767.18  72977.41
179  94342.40 148023.89  65334.60
180 119283.54 198681.78  79468.30
181  42623.74  56830.05  33147.76
182  52394.78  72234.13  39733.50
183  74351.68 110372.11  53466.99
184  58613.51  82453.04  43795.56
185  27648.07  34838.28  22474.16
186  35948.52  46773.09  28488.93
187 106119.82 170831.33  72261.34
188  44928.62  60438.98  34704.33
189  86127.23 131979.31  60598.31
190  77334.34 115176.71  55485.29
191  74551.56 110191.98  53772.39
192  36458.84  47535.47  28846.72
193  39250.74  51693.20  30814.27
194  96552.47 152214.58  66654.36
195  42899.32  57398.21  33273.08
196  87350.89 133684.97  61512.07
197  72213.32 105970.30  52349.26
198 116803.32 194014.66  77951.99
199  46086.84  62261.34  35484.61
200  75549.57 111997.79  54379.92
201  75805.76 112599.80  54489.33
202  51621.91  70962.68  39231.73
203  77831.18 116042.49  55799.73
204  69185.09 100689.05  50447.88
205  66315.22  95530.04  48708.23
206  50951.95  69887.77  38786.02
207  37835.93  49568.52  29824.69
208  41075.86  54506.40  32060.50
209  71604.43 104911.99  51965.19
210  79220.36 118480.52  56673.85
211  33627.90  43372.65  26833.12
212  62202.79  88449.42  46115.82
213  58370.63  82078.80  43626.69
214  95817.90 150713.71  66246.88
215  50951.95  69887.77  38786.02
216 127579.69 216646.01  83970.99
217  59702.44  84308.23  44484.64
218  82516.92 124691.05  58614.14
219  60267.43  85199.65  44869.81
220  58277.47  81902.79  43574.52
221  86462.27 132093.58  60958.70
222  42366.00  56421.00  32976.51
223  76810.41 114543.56  55060.26
224 109341.37 177382.00  74083.18
225  37835.93  49568.52  29824.69
226  97858.64 154613.10  67458.00
227 103436.77 166107.53  70546.00
228  77517.23 115455.06  55614.50
229  93964.98 147024.63  65193.01
230  52795.00  73003.97  39948.38
231 109341.37 177382.00  74083.18
232  77334.34 115176.71  55485.29
233  55272.82  77121.78  41546.62
234  42158.65  56159.01  32808.79
235  80286.73 120540.46  57283.61
236 101515.83 161479.87  69667.97
237  60267.43  85199.65  44869.81
238  54277.38  75286.37  40976.28
239  43649.15  58440.32  33837.52
240  34024.68  43951.11  27117.34
241  89612.72 138025.94  62832.56
242  55272.82  77121.78  41546.62
243  44928.62  60438.98  34704.33
244  84266.82 128471.17  59495.16
245  76294.69 113204.73  54881.67
246  82050.71 123713.05  58371.39
247  49626.93  67773.04  37901.00
248  48372.20  65925.83  36998.79
249  35781.05  46539.59  28363.64
250 105224.60 169501.07  71621.29
251  56337.02  78895.92  42232.70
252  43088.32  57530.94  33472.83
253  56337.02  78895.92  42232.70
254  64218.56  92027.69  47344.92
255  44928.62  60438.98  34704.33
256  55272.82  77121.78  41546.62
257  86025.10 131181.72  60727.14
258  88318.37 136214.89  61869.04
259 113233.17 186369.71  76011.00
260  55272.82  77121.78  41546.62
261  44928.62  60438.98  34704.33
262  56337.02  78895.92  42232.70
263  78285.32 117295.30  55934.56
264 103586.21 166194.35  70690.37
265  76294.69 113204.73  54881.67
266  81844.88 123758.90  58109.93
267  69542.68 101713.98  50530.85
268  86127.23 131979.31  60598.31
269  72618.06 107116.76  52452.09
270  35781.05  46539.59  28363.64
271  95237.70 149596.78  65905.39
272  55272.82  77121.78  41546.62
273  66012.03  95143.78  48467.17
274  55272.82  77121.78  41546.62
275  48372.20  65925.83  36998.79
276 111995.35 183673.53  75352.45
277 111995.35 183673.53  75352.45
278  56337.02  78895.92  42232.70
279  56337.02  78895.92  42232.70
280  49975.26  68511.06  38057.87
281 114648.50 189308.84  76802.92
282  44928.62  60438.98  34704.33
283  27648.07  34838.28  22474.16
284  98031.96 155026.83  67537.20
285 124398.38 210756.99  81994.90
286  56337.02  78895.92  42232.70
287  48372.20  65925.83  36998.79
288  48372.20  65925.83  36998.79
289  56337.02  78895.92  42232.70
290 111275.66 182150.88  74958.39
291  46086.84  62261.34  35484.61
292  91331.04 142075.38  63611.84
293  48372.20  65925.83  36998.79
294  74940.10 111375.60  53846.36
295  48372.20  65925.83  36998.79
296  55272.82  77121.78  41546.62
297 122383.33 206244.89  80934.93
298  69542.68 101713.98  50530.85
299  56337.02  78895.92  42232.70
300  48372.20  65925.83  36998.79
301  49975.26  68511.06  38057.87
302  48372.20  65925.83  36998.79
303  49975.26  68511.06  38057.87
304  48372.20  65925.83  36998.79
305  49975.26  68511.06  38057.87
306  55272.82  77121.78  41546.62
307  49975.26  68511.06  38057.87
test3_2_dollars
          fit       lwr       upr
1    66145.66  68270.76  64118.27
2    45919.82  47674.75  44260.04
3    44897.70  45892.55  43934.86
4    46366.59  47749.66  45042.75
5    57783.36  60055.18  55638.06
6    53860.25  56326.47  51552.53
7    63380.73  65559.36  61308.92
8    50511.32  51574.49  49480.69
9    34987.91  35943.07  34070.32
10   56245.60  58392.62  54214.86
11   60322.87  63004.93  57808.49
12   41849.83  43074.96  40676.25
13   49975.06  51070.21  48914.76
14   43291.62  44644.32  41999.48
15   78777.40  83823.89  74173.29
16   44574.90  45847.05  43354.97
17  108138.96 116886.97 100337.50
18   58558.78  59689.54  57459.84
19   33627.90  34703.99  32601.09
20   58391.34  60723.83  56190.70
21   92139.96  97331.37  87353.09
22   43486.93  44580.97  42432.68
23   42132.06  43164.15  41136.55
24   26018.13  26991.69  25096.31
25   63291.41  65229.95  61438.03
26   75083.89  77737.51  72563.85
27   42390.29  43493.41  41328.61
28   51651.83  52860.00  50484.61
29  109166.29 114706.61 104017.88
30   49115.76  50131.49  48130.59
31   44547.48  46024.72  43140.25
32   52372.98  53486.55  51293.82
33   69150.75  74110.24  64672.93
34   55485.91  57544.15  53536.15
35   92450.64  96593.00  88569.15
36   92396.16  96669.31  88400.20
37   39846.85  40847.64  38882.40
38   55435.06  57734.62  53270.19
39   56686.11  58476.36  54976.83
40   45525.12  46829.55  44274.45
41   41877.97  42909.34  40883.34
42   33947.67  35071.58  32876.93
43   97561.04 101704.71  93665.54
44   36698.50  37733.18  35705.80
45  119945.79 129719.26 111236.66
46   51387.12  53501.44  49395.71
47   74363.73  77821.29  71131.57
48   31254.70  32467.07  30108.98
49   50017.16  51492.89  48603.97
50   67020.44  72472.00  62161.65
51  108668.84 118711.29  99848.83
52   64053.49  70500.46  58452.04
53   38574.96  39660.83  37533.08
54   58650.78  61052.82  56387.76
55   32870.15  33898.83  31887.60
56   57421.49  59581.03  55377.27
57   58277.47  59820.09  56793.75
58   77051.01  79857.72  74389.71
59   36394.05  37433.68  35397.13
60  137238.83 150561.27 125609.48
61   52531.85  54166.81  50969.81
62   71684.84  76503.19  67307.76
63   58367.40  61078.54  55832.85
64   44758.82  45950.79  43612.64
65   36829.29  37869.10  35831.73
66  161878.33 175726.71 149604.72
67   64367.45  66222.84  62588.96
68   51621.91  52663.46  50610.96
69   47207.74  48374.48  46082.71
70   47392.47  49690.16  45250.53
71   39251.21  40240.02  38298.40
72   60172.15  62323.64  58130.17
73   55098.13  56419.07  53823.06
74   51537.76  52565.53  50539.84
75   95349.28 103013.85  88509.36
76   90724.23  95265.68  86499.96
77   63246.89  64595.53  61940.06
78   75011.12  78179.79  72031.26
79   54993.54  57176.23  52933.50
80   79847.51  83479.64  76447.38
81  112711.37 121075.09 105185.26
82   70568.44  75521.10  66087.46
83   45478.70  47210.92  43840.10
84   32150.11  33257.17  31097.42
85   69806.96  72758.34  67031.58
86   33179.82  34398.29  32024.97
87   87954.60  92438.17  83789.50
88   35166.68  36262.14  34120.12
89   85531.70  89491.15  81829.32
90   51537.76  52565.53  50539.84
91  103915.93 110637.05  97789.17
92   47878.71  49410.19  46417.33
93   72079.29  76867.72  67724.75
94   42236.80  43350.63  41165.36
95  114174.19 123930.78 105525.98
96   65364.07  66743.61  64026.86
97   53813.43  55869.08  51869.18
98   56686.11  58476.36  54976.83
99   89705.83  94052.19  85653.94
100  49975.06  51070.21  48914.76
101  59484.79  60870.46  58145.91
102  52550.21  53608.08  51523.34
103 123940.57 133260.44 115565.29
104  39044.42  40102.86  38027.34
105  50374.68  51440.72  49341.44
106  59676.54  62109.54  57383.75
107  40568.37  41881.06  39316.45
108  66315.22  68040.00  64655.20
109  26455.68  27430.55  25531.86
110  51773.54  54091.29  49601.62
111 110842.52 116345.13 105721.25
112  99173.52 103538.17  95079.14
113  40119.43  41489.63  38816.00
114  43021.87  43999.82  42076.16
115  36698.50  37733.18  35705.80
116  62778.35  65580.86  60151.71
117 123994.99 135028.21 114260.82
118  53463.29  54791.04  52183.23
119  53516.45  55576.39  51568.96
120  39250.74  40286.31  38254.60
121  38078.78  39342.20  36875.26
122 101951.84 106792.80  97432.73
123  61657.16  64376.34  59106.70
124  43457.87  45212.49  41803.43
125  52096.89  53147.11  51077.50
126  81812.36  84150.33  79570.48
127  47893.80  48826.08  46987.98
128  52639.52  54685.72  50706.05
129 138041.58 151005.07 126678.49
130  90739.77  95415.63  86399.38
131  45607.12  47061.46  44219.17
132  86127.23  91837.37  80933.56
133  58032.85  59690.23  56443.56
134  65921.32  68635.48  63365.02
135  42356.24  43366.79  41380.60
136 113150.13 121630.34 105526.85
137  67714.10  70587.24  65012.87
138  57936.65  59546.19  56391.50
139  64274.61  65645.51  62946.20
140  54227.22  55578.15  52924.96
141  90304.08  93647.09  87136.94
142  39428.40  40586.96  38318.74
143  56558.51  57821.50  55336.46
144  61815.65  63269.70  60411.16
145  75520.56  79456.80  71869.73
146  56686.11  58476.36  54976.83
147  90724.23  95265.68  86499.96
148  70978.93  73844.34  68277.11
149  31041.04  32233.69  29913.37
150 186158.67 205874.90 169144.82
151  53009.90  54160.29  51895.78
152  38908.72  39901.68  37952.38
153 108299.47 113597.05 103364.01
154  38349.21  39584.68  37170.69
155  35880.83  36992.19  34818.82
156  44528.85  45530.43  43559.96
157  58944.79  60362.74  57576.21
158  33154.68  34197.68  32158.69
159  44652.54  46447.54  42959.61
160  36458.84  37566.79  35399.19
161  94111.74  99287.76  89330.17
162  93614.58  98513.67  89072.05
163  59484.79  60870.46  58145.91
164  49626.93  50696.74  48590.63
165  55856.04  57842.07  53970.58
166  47193.92  48909.34  45567.20
167  97858.64 104234.45  92050.42
168  38737.06  39788.67  37726.60
169  36093.65  37180.45  35053.80
170  44390.54  45358.68  43453.07
171  37700.26  38867.31  36585.00
172  62202.79  63443.15  60998.45
173  67301.67  70174.47  64601.74
174  58277.47  59820.09  56793.75
175  44855.58  46139.52  43624.50
176  91308.97  95368.69  87503.07
177 105982.67 111681.66 100709.02
178 107717.27 115759.31 100485.06
179  94342.40 101549.73  87875.99
180 119283.54 126909.77 112324.62
181  42623.74  43732.32  41556.78
182  52394.78  53662.19  51171.75
183  74351.68  79557.03  69640.98
184  58613.51  60092.04  57188.90
185  27648.07  28756.56  26602.46
186  35948.52  37010.69  34931.42
187 106119.82 111522.98 101100.01
188  44928.62  46374.09  43549.71
189  86127.23  91837.37  80933.56
190  77334.34  80293.81  74535.54
191  74551.56  77588.01  71689.93
192  36458.84  37566.79  35399.19
193  39250.74  40286.31  38254.60
194  96552.47 103460.23  90314.11
195  42899.32  44792.11  41124.02
196  87350.89  90407.94  84446.31
197  72213.32  74877.30  69689.03
198 116803.32 126354.70 108295.39
199  46086.84  47644.91  44603.96
200  75549.57  78692.68  72591.07
201  75805.76  79628.87  72251.50
202  51621.91  52663.46  50610.96
203  77831.18  80596.40  75205.86
204  69185.09  72044.30  66492.77
205  66315.22  68040.00  64655.20
206  50951.95  52002.12  49933.27
207  37835.93  38850.24  36860.83
208  41075.86  42434.02  39781.88
209  71604.43  74362.72  68996.81
210  79220.36  81394.80  77131.90
211  33627.90  34703.99  32601.09
212  62202.79  63443.15  60998.45
213  58370.63  60066.41  56745.66
214  95817.90 102478.97  89785.78
215  50951.95  52002.12  49933.27
216 127579.69 135499.64 120334.37
217  59702.44  61468.26  58011.62
218  82516.92  85728.86  79482.16
219  60267.43  61611.68  58966.70
220  58277.47  59820.09  56793.75
221  86462.27  89984.51  83142.86
222  42366.00  43371.80  41394.79
223  76810.41  81212.27  72756.98
224 109341.37 114674.08 104372.18
225  37835.93  38850.24  36860.83
226  97858.64 104234.45  92050.42
227 103436.77 111368.39  96323.26
228  77517.23  80165.28  74998.25
229  93964.98 100265.02  88240.59
230  52795.00  54837.41  50864.61
231 109341.37 114674.08 104372.18
232  77334.34  80293.81  74535.54
233  55272.82  57770.10  52934.04
234  42158.65  43528.90  40852.09
235  80286.73  83210.21  77514.66
236 101515.83 106425.74  96938.02
237  60267.43  61611.68  58966.70
238  54277.38  55536.66  53060.45
239  43649.15  44977.19  42379.08
240  34024.68  35101.10  32997.02
241  89612.72  93023.59  86386.07
242  55272.82  57770.10  52934.04
243  44928.62  46374.09  43549.71
244  84266.82  89815.92  79216.54
245  76294.69  78657.08  74037.15
246  82050.71  84526.69  79681.96
247  49626.93  50696.74  48590.63
248  48372.20  50331.79  46524.86
249  35781.05  36922.17  34692.03
250 105224.60 112512.23  98622.76
251  56337.02  58977.39  53870.08
252  43088.32  44102.01  42109.17
253  56337.02  58977.39  53870.08
254  64218.56  66560.85  61997.77
255  44928.62  46374.09  43549.71
256  55272.82  57770.10  52934.04
257  86025.10  89012.88  83185.27
258  88318.37  94459.73  82757.04
259 113233.17 122177.51 105236.24
260  55272.82  57770.10  52934.04
261  44928.62  46374.09  43549.71
262  56337.02  58977.39  53870.08
263  78285.32  83035.94  73931.03
264 103586.21 110814.20  97043.01
265  76294.69  78657.08  74037.15
266  81844.88  86487.34  77566.42
267  69542.68  74063.57  65423.44
268  86127.23  91837.37  80933.56
269  72618.06  77184.35  68445.32
270  35781.05  36922.17  34692.03
271  95237.70 101927.41  89185.61
272  55272.82  57770.10  52934.04
273  66012.03  68601.32  63566.62
274  55272.82  57770.10  52934.04
275  48372.20  50331.79  46524.86
276 111995.35 120507.89 104353.93
277 111995.35 120507.89 104353.93
278  56337.02  58977.39  53870.08
279  56337.02  58977.39  53870.08
280  49975.26  52147.46  47936.01
281 114648.50 123583.74 106648.40
282  44928.62  46374.09  43549.71
283  27648.07  28756.56  26602.46
284  98031.96 104673.56  92002.99
285 124398.38 135652.59 114488.75
286  56337.02  58977.39  53870.08
287  48372.20  50331.79  46524.86
288  48372.20  50331.79  46524.86
289  56337.02  58977.39  53870.08
290 111275.66 119661.95 103741.04
291  46086.84  47644.91  44603.96
292  91331.04  97975.70  85340.11
293  48372.20  50331.79  46524.86
294  74940.10  80000.55  70345.04
295  48372.20  50331.79  46524.86
296  55272.82  57770.10  52934.04
297 122383.33 133116.23 112898.03
298  69542.68  74063.57  65423.44
299  56337.02  58977.39  53870.08
300  48372.20  50331.79  46524.86
301  49975.26  52147.46  47936.01
302  48372.20  50331.79  46524.86
303  49975.26  52147.46  47936.01
304  48372.20  50331.79  46524.86
305  49975.26  52147.46  47936.01
306  55272.82  57770.10  52934.04
307  49975.26  52147.46  47936.01
test2_2_dollarsnew = data.frame(Name = ecars$Car_name,
                 Make = ecars$Make,
                 Price = ecars$Price/1000, 
                 Predicted_price = (test2_2_dollars[,1]/1000),
                 Predicted_price_lwr = (test2_2_dollars[,2]/1000),
                 Predicted_price_upr = (test2_2_dollars[,3]/1000),
                 Confidence_price_lwr = (test3_2_dollars[,2]/1000),
                 Confidence_price_upr = (test3_2_dollars[,3])/1000)
test2_2_dollarsnew
# cars groups by brands with the most models

most_makes = test2_2_dollarsnew %>% group_by(Make) %>%
  filter(n() >= 10) %>%
  summarise(average_cost = (mean(Price)), average_predicted_cost = (mean(Predicted_price)))

gplt1 = ggplot(NULL, aes(Predicted_price, Price)) +
      geom_line(data = test2_2_dollarsnew, aes(x = Predicted_price, y = Predicted_price)) +
      geom_line(data = test2_2_dollarsnew, aes(x = Predicted_price, y = Predicted_price_lwr), col = 'red') +
      geom_line(data = test2_2_dollarsnew, aes(x = Predicted_price, y = Predicted_price_upr), col = 'red') +
      geom_line(data = test2_2_dollarsnew, aes(x = Predicted_price, y = Confidence_price_lwr), col = 'blue') +
      geom_line(data = test2_2_dollarsnew, aes(x = Predicted_price, y = Confidence_price_upr), col = 'blue') +
      ylim(0,250)+ 
      geom_point(data = test2_2_dollarsnew, aes(x = Predicted_price, y = Price), alpha = .5) +
      geom_point(data = most_makes, aes(x = average_predicted_cost, y = average_cost), size = 3, shape = 23, fill = make_colors) +
      scale_color_manual(values = make_colors)
ecars
plot_ly(
  data = ecars_make,
  x = ~Price,
  type = "box",
  text = ~Car_name,
  tooltip = c("x", "text")
)
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
plot_ly(
  data = ecars_make,
  x = ~Price,
  y = ~Make,
  type = "box",
  color = ~Make,
  colors = make_colors,
  text = ~Car_name,
  tooltip = c("x", "text"),
  showlegend = FALSE
)
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Warning: 'box' objects don't have these attributes: 'tooltip'
Valid attributes include:
'alignmentgroup', 'boxmean', 'boxpoints', 'customdata', 'customdatasrc', 'dx', 'dy', 'fillcolor', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hoveron', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'jitter', 'legendgroup', 'legendgrouptitle', 'legendrank', 'line', 'lowerfence', 'lowerfencesrc', 'marker', 'mean', 'meansrc', 'median', 'mediansrc', 'meta', 'metasrc', 'name', 'notched', 'notchspan', 'notchspansrc', 'notchwidth', 'offsetgroup', 'opacity', 'orientation', 'pointpos', 'q1', 'q1src', 'q3', 'q3src', 'quartilemethod', 'sd', 'sdsrc', 'selected', 'selectedpoints', 'showlegend', 'stream', 'text', 'textsrc', 'transforms', 'type', 'uid', 'uirevision', 'unselected', 'upperfence', 'upperfencesrc', 'visible', 'whiskerwidth', 'width', 'x', 'x0', 'xaxis', 'xcalendar', 'xhoverformat', 'xperiod', 'xperiod0', 'xperiodalignment', 'xsrc', 'y', 'y0', 'yaxis', 'ycalendar', 'yhoverformat', 'yperiod', 'yperiod0', 'yperiodalignment', 'ysrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
options(repr.plot.width = 15, repr.plot.height =2) 

ggplot(data = test2_2_dollarsnew, aes(x = Predicted_price, y = Price)) +
  geom_point() +
  geom_line(aes(x = Predicted_price, y = Predicted_price)) +
  geom_line(aes(x = Predicted_price, y = Predicted_price_lwr), col = 'red') +
  geom_line(aes(x = Predicted_price, y = Predicted_price_upr)) +
  geom_line(aes(x = Predicted_price, y = Confidence_price_lwr)) +
  geom_line(aes(x = Predicted_price, y = Confidence_price_upr)) #+

 geom_point(aes(x = most_makes$average_cost, y =most_makes$average_predicted_cost))
mapping: x = ~most_makes$average_cost, y = ~most_makes$average_predicted_cost 
geom_point: na.rm = FALSE
stat_identity: na.rm = FALSE
position_identity 
  
new
function (Class, ...) 
{
    ClassDef <- getClass(Class, where = topenv(parent.frame()))
    value <- .Call(C_new_object, ClassDef)
    initialize(value, ...)
}
<bytecode: 0x0000021c472546e8>
<environment: namespace:methods>
new
function (Class, ...) 
{
    ClassDef <- getClass(Class, where = topenv(parent.frame()))
    value <- .Call(C_new_object, ClassDef)
    initialize(value, ...)
}
<bytecode: 0x0000021c472546e8>
<environment: namespace:methods>
new %>% group_by(Make) %>%
  filter(n() >= 10) %>%
  summarise(average_cost = (mean(Price)/1000), average_predicted_cost = (mean(Predicted_price)/1000)) #%>%
Error in UseMethod("group_by") : 
  no applicable method for 'group_by' applied to an object of class "function"
new %>% group_by(Make) %>%
  filter(n() >= 10) %>%
  summarise(average_price = (mean(Price)/1000), average_predicted_price =  (mean(Predicted_price)/1000))%>%
  ggplot(., aes(x = average_predicted_price, y = average_price)) +
  geom_point(aes(color = Make), size =4) 
Error in UseMethod("group_by") : 
  no applicable method for 'group_by' applied to an object of class "function"
new
new %>% group_by(Make) %>%
  filter(n() >= 10) %>%
  summarise(average_price = (mean(Price)/1000), average_predicted_price = (mean(Predicted_price)/1000))%>%
  ggplot(., aes(x = average_predicted_price, y = average_price)) +
  geom_point(aes(color = Make), size =4) +
  geom_line(aes(x = average_predicted_price, y = average_predicted_price)) + 
predict(model, newdata, interval = 'confidence')
predict(model, newdata, interval = 'prediction')
new
new %>% group_by(Make) %>%
  filter(n() >= 10) %>%
  summarise(average_price = (mean(Price)/1000), average_predicted_price = (mean(Predicted_price)/1000))
ecars_missing_price
pre
model
ecars
model.empty = lm(Price_pow ~ 1, data = ecars)
model.full = lm(Price_pow ~ Efficiency_pow + Range + Battery + Speed_pow + Fast_charge + Acceleration, data = ecars)
scope = list(lower = formula(model.empty), upper = formula(model.full))
scope
$lower
Price_pow ~ 1

$upper
Price_pow ~ Efficiency_pow + Range + Battery + Speed_pow + Fast_charge + 
    Acceleration
forwardAIC = step(model.empty, scope, direction = 'forward', k = 2)
Start:  AIC=-4363.96
Price_pow ~ 1

                 Df  Sum of Sq        RSS     AIC
+ Battery         1 1.3640e-04 6.8190e-05 -4699.3
+ Speed_pow       1 1.0767e-04 9.6914e-05 -4591.3
+ Range           1 8.6310e-05 1.1828e-04 -4530.2
+ Fast_charge     1 8.0946e-05 1.2364e-04 -4516.6
+ Acceleration    1 6.0434e-05 1.4415e-04 -4469.4
+ Efficiency_pow  1 2.1897e-05 1.8269e-04 -4396.7
<none>                         2.0459e-04 -4364.0

Step:  AIC=-4699.26
Price_pow ~ Battery

                 Df  Sum of Sq        RSS     AIC
+ Speed_pow       1 8.4306e-06 5.9759e-05 -4737.8
+ Fast_charge     1 6.8139e-06 6.1376e-05 -4729.6
+ Efficiency_pow  1 6.6610e-06 6.1529e-05 -4728.8
+ Range           1 3.8502e-06 6.4339e-05 -4715.1
+ Acceleration    1 7.4760e-07 6.7442e-05 -4700.6
<none>                         6.8190e-05 -4699.3

Step:  AIC=-4737.78
Price_pow ~ Battery + Speed_pow

                 Df  Sum of Sq        RSS     AIC
+ Efficiency_pow  1 2.1733e-05 3.8026e-05 -4874.6
+ Range           1 1.4127e-05 4.5632e-05 -4818.6
+ Acceleration    1 5.0183e-06 5.4741e-05 -4762.7
+ Fast_charge     1 8.4290e-07 5.8916e-05 -4740.1
<none>                         5.9759e-05 -4737.8

Step:  AIC=-4874.56
Price_pow ~ Battery + Speed_pow + Efficiency_pow

               Df Sum of Sq        RSS     AIC
+ Fast_charge   1 4.157e-06 3.3869e-05 -4908.1
+ Range         1 3.319e-06 3.4707e-05 -4900.6
<none>                      3.8026e-05 -4874.6
+ Acceleration  1 1.310e-08 3.8013e-05 -4872.7

Step:  AIC=-4908.1
Price_pow ~ Battery + Speed_pow + Efficiency_pow + Fast_charge

               Df Sum of Sq        RSS     AIC
+ Range         1 1.777e-06 3.2092e-05 -4922.6
<none>                      3.3869e-05 -4908.1
+ Acceleration  1 3.125e-08 3.3838e-05 -4906.4

Step:  AIC=-4922.64
Price_pow ~ Battery + Speed_pow + Efficiency_pow + Fast_charge + 
    Range

               Df  Sum of Sq        RSS     AIC
<none>                       3.2092e-05 -4922.6
+ Acceleration  1 9.5837e-08 3.1996e-05 -4921.6

battery speed_pow efficiency and fast charge

forwardAIC2 = step(model.empty2, scope2, direction = 'forward', k = 2)
Start:  AIC=6415.84
Price ~ 1

               Df  Sum of Sq        RSS    AIC
+ Top_speed     1 2.1023e+11 1.5319e+11 6152.6
+ Battery       1 1.7911e+11 1.8431e+11 6209.4
+ Fast_charge   1 1.3923e+11 2.2419e+11 6269.5
+ Range         1 1.2615e+11 2.3728e+11 6287.0
+ Acceleration  1 1.0296e+11 2.6046e+11 6315.6
+ Efficiency    1 1.1067e+10 3.5235e+11 6408.3
<none>                       3.6342e+11 6415.8

Step:  AIC=6152.62
Price ~ Top_speed

               Df  Sum of Sq        RSS    AIC
+ Efficiency    1 4.2802e+10 1.1039e+11 6054.0
+ Battery       1 1.9965e+10 1.3322e+11 6111.8
+ Acceleration  1 1.5065e+10 1.3812e+11 6122.8
<none>                       1.5319e+11 6152.6
+ Fast_charge   1 2.2387e+08 1.5297e+11 6154.2
+ Range         1 7.0491e+07 1.5312e+11 6154.5

Step:  AIC=6054.03
Price ~ Top_speed + Efficiency

               Df  Sum of Sq        RSS    AIC
+ Fast_charge   1 3519695484 1.0687e+11 6046.1
+ Range         1 3506122724 1.0688e+11 6046.1
+ Battery       1 3063673448 1.0732e+11 6047.4
+ Acceleration  1  915987463 1.0947e+11 6053.5
<none>                       1.1039e+11 6054.0

Step:  AIC=6046.08
Price ~ Top_speed + Efficiency + Fast_charge

               Df  Sum of Sq        RSS    AIC
+ Range         1 2137906570 1.0473e+11 6041.9
+ Battery       1 2032210165 1.0484e+11 6042.2
+ Acceleration  1  713779942 1.0615e+11 6046.0
<none>                       1.0687e+11 6046.1

Step:  AIC=6041.87
Price ~ Top_speed + Efficiency + Fast_charge + Range

               Df  Sum of Sq        RSS    AIC
+ Acceleration  1 1639080066 1.0309e+11 6039.0
<none>                       1.0473e+11 6041.9
+ Battery       1    1076868 1.0473e+11 6043.9

Step:  AIC=6039.03
Price ~ Top_speed + Efficiency + Fast_charge + Range + Acceleration

          Df Sum of Sq        RSS    AIC
<none>                 1.0309e+11 6039.0
+ Battery  1  1.37e+08 1.0295e+11 6040.6
forwardAIC3 = step(model.empty3, scope3, direction = 'forward', k = 2)
Start:  AIC=-4363.96
Price_pow ~ 1

               Df  Sum of Sq        RSS     AIC
+ Battery       1 1.3640e-04 6.8190e-05 -4699.3
+ Top_speed     1 1.1336e-04 9.1232e-05 -4609.9
+ Range         1 8.6310e-05 1.1828e-04 -4530.2
+ Fast_charge   1 8.0946e-05 1.2364e-04 -4516.6
+ Acceleration  1 6.0434e-05 1.4415e-04 -4469.4
+ Efficiency    1 1.9016e-05 1.8557e-04 -4391.9
<none>                       2.0459e-04 -4364.0

Step:  AIC=-4699.26
Price_pow ~ Battery

               Df  Sum of Sq        RSS     AIC
+ Top_speed     1 1.1639e-05 5.6551e-05 -4754.7
+ Fast_charge   1 6.8139e-06 6.1376e-05 -4729.6
+ Efficiency    1 6.4609e-06 6.1729e-05 -4727.8
+ Range         1 3.8502e-06 6.4339e-05 -4715.1
+ Acceleration  1 7.4760e-07 6.7442e-05 -4700.6
<none>                       6.8190e-05 -4699.3

Step:  AIC=-4754.72
Price_pow ~ Battery + Top_speed

               Df  Sum of Sq        RSS     AIC
+ Efficiency    1 2.1501e-05 3.5050e-05 -4899.6
+ Range         1 1.4243e-05 4.2308e-05 -4841.8
+ Acceleration  1 5.9843e-06 5.0567e-05 -4787.1
<none>                       5.6551e-05 -4754.7
+ Fast_charge   1 2.2690e-07 5.6324e-05 -4753.9

Step:  AIC=-4899.57
Price_pow ~ Battery + Top_speed + Efficiency

               Df  Sum of Sq        RSS     AIC
+ Fast_charge   1 3.1856e-06 3.1865e-05 -4926.8
+ Range         1 2.5096e-06 3.2541e-05 -4920.4
<none>                       3.5050e-05 -4899.6
+ Acceleration  1 1.2000e-09 3.5049e-05 -4897.6

Step:  AIC=-4926.83
Price_pow ~ Battery + Top_speed + Efficiency + Fast_charge

               Df  Sum of Sq        RSS     AIC
+ Range         1 1.3707e-06 3.0494e-05 -4938.3
<none>                       3.1865e-05 -4926.8
+ Acceleration  1 6.7350e-08 3.1797e-05 -4925.5

Step:  AIC=-4938.32
Price_pow ~ Battery + Top_speed + Efficiency + Fast_charge + 
    Range

               Df  Sum of Sq        RSS     AIC
+ Acceleration  1 2.3039e-07 3.0263e-05 -4938.7
<none>                       3.0494e-05 -4938.3

Step:  AIC=-4938.65
Price_pow ~ Battery + Top_speed + Efficiency + Fast_charge + 
    Range + Acceleration

I’m getting a lower AIC when I run these without transforming them??? I need to transform price but not the others?? not sure what to do??

model.empty = lm(Price_pow ~ 1, data = ecars)
model.full = lm(Price_pow ~ Efficiency_pow + Range + Battery + Speed_pow + Fast_charge + Acceleration, data = ecars)
scope = list(lower = formula(model.empty), upper = formula(model.full))
scope
forwardAIC = step(model.empty, scope, direction = 'forward', k = 2)
summary(model_box)

Call:
lm(formula = Price ~ Top_speed + Range + Efficiency + Fast_charge + 
    Acceleration, data = ecars)

Residuals:
   Min     1Q Median     3Q    Max 
-53655 -11767   -328   8350  82937 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -1.731e+05  1.497e+04 -11.561  < 2e-16 ***
Top_speed     7.047e+02  7.058e+01   9.984  < 2e-16 ***
Range         4.992e+01  1.669e+01   2.991  0.00301 ** 
Efficiency    3.730e+02  3.831e+01   9.736  < 2e-16 ***
Fast_charge   1.699e+01  7.692e+00   2.208  0.02797 *  
Acceleration  1.637e+03  7.485e+02   2.188  0.02947 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 18510 on 301 degrees of freedom
Multiple R-squared:  0.7163,    Adjusted R-squared:  0.7116 
F-statistic:   152 on 5 and 301 DF,  p-value: < 2.2e-16
lambda
[1] -0.7070707

****This is how to undo the lambda transformation

ecars$Price
  [1]  59017  46220  44625  39990  55220  47567  77300  41790  23300
 [10]  53668  59200  46600  55000  42900  63667  45690 110970  67300
 [19]  34990  70805  95970  35990  39370  22550  70200  70800  41990
 [28]  37990 139900  47490  36590  42490  51990  56995 100100  85300
 [37]  34990  47578  48900  47190  39995  36840  76490  39100 146050
 [46]  46450  71400  35700  56500  61100  72990  54000  37000  58990
 [55]  33400  64581  46335  63970  36040 218000  45990  47900  47567
 [64]  47590  29990  95990  54475  48490  47900  43900  40650  46990
 [73]  48990  57490 109551  69950  53000  60970  51150  99500 106050
 [82]  55980  38490  35990  68990  36400  57000  37840  72490  68000
 [91] 100970  53514  59200  44765 115970  59950  43900  48970  87550
[100]  56500  52950  50470 136100  36490  43490  46990  41100  58775
[109]  24550  47595 135434  82380  47000  44200  37540  58500 159000
[118]  47500  50775  40050  38990  88600  50990  33990  57390  74400
[127]  47490  46990 218000 105550  50777  71626  81900  65900  40335
[136]  89790  68500  51150  61400  41560  99841  36900  55800  54450
[145]  92400  63300  69950  67187  39900 150990  50990  45765 110801
[154]  32740  38045  40490  49020  42000  37490  41540 129000 110650
[163]  53255  56424  53400  52205 141705  39300  36775  39563  41990
[172]  59000  90900  54950  46950 115700  95800 139906  98863 181800
[181]  43490  47500 109000  56455  30990  34650  95200  37790  64248
[190]  61990  74500  41540  40540 113359  35490  86811  74149 197740
[199]  42440  94900  77300  45970  68970  68500  65275  55519  39990
[208]  44490  70995  76650  36990  54950  59500  67300  58197 155009
[217]  59500  89548  61000  61050  69200  40750  93139 124545  49445
[226] 125378 120081  88215 103254  53090 114609  71490  56942  49490
[235]  83479  98050  56950  46490  37800  37990 124920  64530  40150
[244] 114559  52990 104756  53520  53640  37990 139438  70075  47588
[253]  65385  65500  43050  57940 110706  65140 164420  57940  41240
[262]  60430  63200 119914  58890  94091  68056  72519  60678  40990
[271]  73100  59640  85900  59640  53640 140858 165848  58730  62990
[280]  54430 199168  43640  35490  99815 198692  60430  51940  63250
[289]  58730 120081  44750 114559  51940  61571  54430  61990 165372
[298]  68949  57775  50992  64075  52730  52730  55990  51825  69250
[307]  56990
plot.new()

plot( x = 50, y = 54)
lines(predicted_price$Predicted, predicted_price$Predicted)

This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KQWJvdXQgdGhpcyBmaWxlDQpEYXRhIEZpZWxkczoNCg0KLSBCYXR0ZXJ5OiBUaGUgY2FwYWNpdHkgb2YgdGhlIHZlaGljbGUncyBiYXR0ZXJ5IGluIGtpbG93YXR0LWhvdXJzIChrV2gpLg0KDQotIENhcl9uYW1lOiBUaGUgbW9kZWwgbmFtZSBvZiB0aGUgZWxlY3RyaWMgdmVoaWNsZS4NCg0KLSBDYXJfbmFtZV9saW5rOiBBIGRpcmVjdCBsaW5rIHRvIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2Ugb24gRVYgRGF0YWJhc2UgZm9yIG1vcmUgaW4tZGVwdGggaW5mb3JtYXRpb24uDQoNCi0gRWZmaWNpZW5jeTogVGhlIGVuZXJneSBlZmZpY2llbmN5IHJhdGluZyBvZiB0aGUgdmVoaWNsZSBpbiB3YXR0LWhvdXJzIHBlciBraWxvbWV0ZXIgKFdoL2ttKS4NCg0KLSBGYXN0X2NoYXJnZTogVGhlIGZhc3QtY2hhcmdpbmcgY2FwYWJpbGl0eSBvZiB0aGUgdmVoaWNsZSBpbiBtaW51dGVzIGZvciBhIGNlcnRhaW4gY2hhcmdpbmcgcGVyY2VudGFnZS4NCg0KLSBQcmljZS5ERS46VGhlIHByaWNlIG9mIHRoZSBlbGVjdHJpYyB2ZWhpY2xlIGluIEdlcm1hbnkuDQoNCi0gUmFuZ2U6IFRoZSBkcml2aW5nIHJhbmdlIG9mIHRoZSB2ZWhpY2xlIG9uIGEgc2luZ2xlIGNoYXJnZSBpbiBraWxvbWV0ZXJzLg0KDQotIFRvcF9zcGVlZDpUaGUgbWF4aW11bSBzcGVlZCB0aGUgdmVoaWNsZSBjYW4gYWNoaWV2ZSBpbiBraWxvbWV0ZXJzIHBlciBob3VyLg0KDQotIEFjY2VsZXJhdGlvbi4uMC4xMDAuOiBUaGUgYWNjZWxlcmF0aW9uIHRpbWUgZnJvbSAwIHRvIDEwMCBraWxvbWV0ZXJzIHBlciBob3VyLg0KYGBge3J9DQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeSh0aWR5cikNCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShNQVNTKQ0KbGlicmFyeShyZXByKQ0KaW5zdGFsbC5wYWNrYWdlcygncGFscycpDQpsaWJyYXJ5KHBhbHMpDQppbnN0YWxsLnBhY2thZ2VzKCdicm9vbScpDQpgYGANCg0KDQpgYGB7cn0NCmVjYXJzX3JhdyA9IHJlYWQuY3N2KCdFVl9jYXJzLmNzdicpDQplY2Fyc19yYXcNCg0KYGBgDQoNCmBgYHtyfQ0KI3JlbmFtZSBzb21lIG9mIHRoZSBjb2x1bW5zDQplY2Fyc19yYXcgPSBlY2Fyc19yYXcgJT4lIHJlbmFtZShQcmljZSA9IFByaWNlLkRFLiwgQWNjZWxlcmF0aW9uID0gYWNjZWxlcmF0aW9uLi4wLjEwMC4pDQpgYGANCg0KYGBge3J9DQoNCiMgZXh0cmFjdCB0aGUgTWFrZSBvZiBlYWNoIGNhciBpbnRvIGl0cyBvd24gY29sdW1uDQptYWtlID0gc3Ryc3BsaXQoZWNhcnNfcmF3JENhcl9uYW1lLCBzcGxpdCA9ICcgJykNCg0KbWFrZV8gPSBjKCkNCm4gPSBsZW5ndGgobWFrZSkNCg0KZm9yIChpIGluIDE6bikgew0KICBtYWtlX1tpXSA9IG1ha2VbW2ldXVsxXQ0KfQ0KDQplY2Fyc19yYXckTWFrZSA9IG1ha2VfDQpgYGANCg0KYGBge3J9DQojIG1vdmUgY29sdW1ucyBzbyBjb250aW51b3VzIHZhcmlhYmxlcyBhcmUgdG9nZXRoZXIgDQplY2Fyc19yYXcgPSBlY2Fyc19yYXcgJT4lIHJlbG9jYXRlKE1ha2UsIC5iZWZvcmUgPSBDYXJfbmFtZV9saW5rKQ0KZWNhcnNfcmF3ID0gZWNhcnNfcmF3ICU+JSByZWxvY2F0ZShCYXR0ZXJ5LCAuYWZ0ZXIgPSBDYXJfbmFtZV9saW5rKQ0KZWNhcnNfcmF3DQpgYGANCmBgYHtyfQ0KZWNhcnNfcmF3ID0gZWNhcnNfcmF3ICU+JSBmaWx0ZXIoIWlzLm5hKEZhc3RfY2hhcmdlKSkNCmVjYXJzID0gZWNhcnNfcmF3ICU+JSBmaWx0ZXIoIWlzLm5hKFByaWNlKSkNCmVjYXJzX21pc3NpbmdfcHJpY2UgPSBlY2Fyc19yYXcgJT4lIGZpbHRlcihpcy5uYShQcmljZSkpDQpgYGANCg0KVGhpcyBkYXRhIHJlcXVpcmVkIG1pbmltYWwgcHJvY2Vzc2luZy4gSSBjcmVhdGVkIGEgTWFrZSB2YXJpYWJsZSBieSBleHRyYWN0aW5nIHRoZSBmaXJzdCB3b3JkIGZyb20gdGhlIENhcl9uYW1lIHZhcmlhYmxlLiBJIGFsc28gcmVuYW1lZCBzZXZlcmFsIGNvbHVtbnMgdG8gbWFrZSB0aGVtIG1vcmUgaW50dWl0aXZlIGZvciBleGFtcGxlIGFjY2VsZXJhdGlvbi4uMC4xMDAuIHRvIEFjY2VsZXJhdGlvbi4gSSByZW1vdmVkIHRoZSB0d28gY2FycyB0aGF0IGRpZCBub3QgaGF2ZSBGYXN0IENoYXJnZSAodGhlIFJlbmF1bHQgVHdpbmdvIEVsZWN0cmljIGFuZCB0aGUgZS5HbyBlLndhdmUgWCkgY2FwYWJpbGl0eSBiZWNhdXNlIHRoaXMgd2FzIGFuIGltcG9ydGFudCBmZWF0dXJlIGluIHRoZSBsaW5lYXIgcmVncmVzc2lvbiBhbmQgd2FzIGltcGFjdGluZyB0aGVpciBwcmljZS4gRmluYWxseSBJIG1hZGUgc3VyZSBhbGwgdGhlIGNvbnRpbnVvdXMgdmFyaWFibGVzIHdlcmUgbmV4dCB0byBlYWNoIG90aGVyIHRvIHNpbXBsaWZ5IGNhbGxpbmcgdGhlbS4gSSBzcGxpdCB0aGUgZGF0YWZyYW1lIGludG8gdHdvLiBPbmUgd2l0aCBwcmljZXMoMzA3IG9iamVjdHMpIGFuZCBvbmUgd2l0aCBtaXNzaW5nIHByaWNlcyAoNTEgb2JqZWN0cykuIA0KDQpBZnRlciBjbGVhbmluZyB0aGUgZGF0YSA0NSB1bmlxdWUgY2FyIG1ha2VzIHdlcmUgaW5jbHVkZWQgaW4gdGhlIGVjYXJzIGRhdGEgdXNlZCB0byBjcmVhdGUgdGhlIGxpbmVhciBtb2RlbCBhbmQgMjIgdW5pcXVlIGNhciBtYWtlcyB3ZXJlIGluY2x1ZGVkIGluIHRoZSBkYXRhIHdpdGggbWlzc2luZyBwcmljZXMuIEFkZGl0aW9uYWxseSAxNCBtYWtlcyB0aGF0IGhhdmUgMTAgb3IgbW9yZSBjYXIgbW9kZWxzIGFyZSBoaWdobGlnaHRlZCB0aHJvdWdob3V0IHRoZSBwcm9qZWN0LiAgDQoNCmBgYHtyfQ0KbGVuZ3RoKGVjYXJzJFByaWNlKQ0KYGBgDQpgYGB7cn0NCmVjYXJzDQpsaWJyYXJ5KHRpYmJsZSkNCg0KZ2dwbG90KGVjYXJzLCBhZXMoUHJpY2UsIHkgPSBmYWN0b3IoMCkpKSArDQogIGdlb21fYm94cGxvdCgpKw0KICB0aGVtZShheGlzLnRpdGxlLnk9ZWxlbWVudF9ibGFuaygpLGF4aXMudGV4dC55PWVsZW1lbnRfYmxhbmsoKSxheGlzLnRpY2tzLnk9ZWxlbWVudF9ibGFuaygpKQ0KDQoNCg0KYGBgDQpgYGB7cn0NCk5vZWNhcnMgPSBlY2Fycw0KDQpOb2VjYXJzJE1ha2UyID0gTm9lY2FycyRNYWtlDQpOb2VjYXJzDQptYWtlcyA9IG1vc3RfbWFrZXMkTWFrZQ0KbWFrZXMNCk5vZWNhcnMkTWFrZTMgPSBpZmVsc2UoTm9lY2FycyRNYWtlMiAlaW4lIG1ha2VzLCBOb2VjYXJzJE1ha2UyLCAiT3RoZXIiKQ0KTm9lY2FycyRNYWtlMiAlaW4lIG1ha2VzDQpOb2VjYXJzDQpgYGANCg0KYGBge3J9DQplY2Fyc19tYWtlDQoNCmlzX291dGxpZXIgPC0gZnVuY3Rpb24oeCkgew0KICByZXR1cm4oeCA8IHF1YW50aWxlKHgsIDAuMjUpIC0gMS41ICogSVFSKHgpIHwgeCA+IHF1YW50aWxlKHgsIDAuNzUpICsgMS41ICogSVFSKHgpKQ0KfQ0KDQpkYXQgPC0gZWNhcnMgJT4lIHRpYmJsZTo6cm93bmFtZXNfdG9fY29sdW1uKHZhcj0ib3V0bGllciIpICU+JQ0KICBtdXRhdGUoaXNfb3V0bGllcj1pZmVsc2UoaXNfb3V0bGllcihQcmljZSksIFByaWNlLCBhcy5udW1lcmljKE5BKSkpDQoNCmRhdA0KZGF0JG91dGxpZXJbd2hpY2goaXMubmEoZGF0JGlzX291dGxpZXIpKV0gPC0gYXMubnVtZXJpYyhOQSkNCg0KZ2dwbG90KGRhdCwgYWVzKHk9UHJpY2UsIHg9ZmFjdG9yKDApKSkgKyBnZW9tX2JveHBsb3QoKSArIGdlb21fdGV4dChhZXMobGFiZWw9b3V0bGllciksbmEucm09VFJVRSxudWRnZV95PTAuMSkNCg0KZ2dwbG90KGVjYXJzX21ha2UsIGFlcyhUb3Bfc3BlZWQsIE1ha2UsIGZpbGwgPSBNYWtlKSkgKw0KICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gbWFrZV9jb2xvcnMpKw0KICBnZW9tX2JveHBsb3Qob3V0bGllci5jb2xvdXI9ImJsYWNrIiwgb3V0bGllci5zaGFwZT0xNiwgb3V0bGllci5zaXplPTIsIG5vdGNoPUZBTFNFKQ0KYGBgDQoNCmBgYHtyfQ0KZWNhcnMgJT4lIGdyb3VwX2J5KE1ha2UpICU+JQ0KICBmaWx0ZXIobigpID49IDEwKSAlPiUNCiAgc3VtbWFyaXNlKGF2ZXJhZ2VfY29zdCA9IChtZWFuKFByaWNlKS8xMDAwKSkgJT4lDQogIGdncGxvdCguLCBhZXMoeCA9IE1ha2UsIHkgPSBhdmVyYWdlX2Nvc3QsIGZpbGwgPSBNYWtlLCBsYWJlbCA9IE1ha2UpKSArDQogIGdlb21fYmFyKHN0YXQgPSAnaWRlbnRpdHknKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IG1ha2VfY29sb3JzKSArDQogIHlsYWIoJ0F2ZXJhZ2UgY29zdCBpbiBHZXJtYW55IGluIDEwMHMgb2YgZXJ1cm9zJykrDQogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCksDQogICAgICAgIGF4aXMudGV4dC54PWVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgYXhpcy50aWNrcy54PWVsZW1lbnRfYmxhbmsoKSkgKw0KICBnZW9tX3RleHQoYW5nbGUgPSA5MCwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpICsgDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikNCmBgYA0KYGBge3J9DQplY2Fycw0KYGBgDQoNCmBgYHtyfQ0KdG9wXzEwID0gZWNhcnMgJT4lIGdyb3VwX2J5KE1ha2UpICU+JQ0KICBmaWx0ZXIobigpID49IDEwKSAjJT4lDQogICNzdW1tYXJpc2UoYXZlcmFnZV9jb3N0ID0gbWVhbihQcmljZSkpDQp0b3BfMTANCg0KDQoNCm1ha2VfY29sb3JzID0gYygnI2U2MTk0YicsICcjZjU4MjMxJywgICcjZmZlMTE5JywgDQogICAgICAgICAgICAgICAgJyNiY2Y2MGMnLCcjM2NiNDRiJywgJyMwMDgwODAnLA0KICAgICAgICAgICAgICAgICcjYWFmZmMzJywgJyM0MzYzZDgnLCAnIzAwMDA3NScsDQogICAgICAgICAgICAgICAgJyM0NmYwZjAnLCAnIzkxMWViNCcsICcjZTZiZWZmJywNCiAgICAgICAgICAgICAgICAnI2YwMzJlNicsICcjZmFiZWJlJykNCg0KDQplY2FycyAlPiUgZ3JvdXBfYnkoTWFrZSkgJT4lDQogIGZpbHRlcihuKCkgPj0gMTApICU+JQ0KICBnZ3Bsb3QoLiwgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUHJpY2UpKSArDQogIGdlb21fcG9pbnQoYWVzKGNvbCA9IE1ha2UpLCBzaXplID0gMikgKyANCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IG1ha2VfY29sb3JzKQ0KDQoNCmVjYXJzICU+JSBncm91cF9ieShNYWtlKSAlPiUNCiAgZmlsdGVyKG4oKSA+PSAxMCkgJT4lDQogIGdncGxvdCguLCBhZXMoeCA9IEVmZmljaWVuY3ksIHkgPSBQcmljZSkpICsNCiAgZ2VvbV9wb2ludChhZXMoY29sID0gTWFrZSkpIA0KDQplZmZpY2llbmN5X21ha2UgPSBlY2FycyAlPiUgZ3JvdXBfYnkoTWFrZSkgJT4lDQogIGZpbHRlcihuKCkgPj0gMTApICU+JQ0KICBnZ3Bsb3QoLiwgYWVzKHggPSBFZmZpY2llbmN5LCB5ID0gUHJpY2UpKSArDQogIGdlb21fcG9pbnQoYWVzKGNvbCA9IE1ha2UpLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArDQogIGZhY2V0X3dyYXAofk1ha2UpKw0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gbWFrZV9jb2xvcnMpDQoNCmVmZmljaWVuY3lfbWFrZQ0KDQpiYXR0ZXJ5X21ha2UgPSBlY2FycyAlPiUgZ3JvdXBfYnkoTWFrZSkgJT4lDQogIGZpbHRlcihuKCkgPj0gMTApICU+JQ0KICBnZ3Bsb3QoLiwgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUHJpY2UpKSArDQogIGdlb21fcG9pbnQoYWVzKGNvbCA9IE1ha2UpLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArDQogIGZhY2V0X3dyYXAofk1ha2UpDQpiYXR0ZXJ5X21ha2UNCiNnZ3NhdmUoJ2JhdHRlcnlfbWFrZS5wbmcnLCB3aWR0aCA9IDE1LCBoZWlnaHQgPSA5KQ0KDQojZ2dzYXZlKCdlZmZpY2llbmN5X21ha2UucG5nJywgd2lkdGggPSAxNSwgaGVpZ2h0ID0gOSkNCg0KI2tlZXAgd29ya2luZyBvbiB0aGlzJw0KYmF0dGVyeV9wcmljZSA9IGdncGxvdChOVUxMLCBhZXMoeCA9ICdCYXR0ZXJ5JywgeSA9IFByaWNlKSkgKw0KICBnZW9tX3BvaW50KGRhdGEgPSBlY2FycywgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUHJpY2UpKSArDQogIGdlb21fcG9pbnQoZGF0YSA9IHRvcF8xMCwgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUHJpY2UsIGNvbCA9IE1ha2UpKSMgKyBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gbWFrZV9jb2xvcnMpIw0KDQpiYXR0ZXJ5X3ByaWNlDQpnZ3NhdmUoJ2JhdHRlcnlfcHJpY2UucG5nJywgd2lkdGggPSAxMCkNCg0KI2VjYXJzICU+JSBncm91cF9ieShNYWtlKSU+JQ0KICMgc3VtbWFyaXNlKGF2ZXJhZ2VfY29zdCA9IG1lYW4oUHJpY2UpKSAlPiUNCiAgI2FycmFuZ2UoYXZlcmFnZV9jb3N0KQ0KYGBgDQpgYGB7cn0NCmVjYXJzICU+JSBncm91cF9ieShNYWtlKSAlPiUNCiAgZmlsdGVyKG4oKSA+PSAxMCkgJT4lDQogIGdncGxvdCguLCBhZXMoeCA9IEJhdHRlcnksIHkgPSBQcmljZSkpICsNCiAgZ2VvbV9wb2ludChhZXMoY29sID0gTWFrZSksIHNob3cubGVnZW5kID0gRkFMU0UpIA0KDQpCYXR2UHJpY2UgPSBnZ3Bsb3QoTlVMTCwgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUHJpY2UpKSArDQogIGdlb21fcG9pbnQoZGF0YSA9IGVjYXJzLCBhZXMoeCA9IEJhdHRlcnksIHkgPSBQcmljZSwgZmlsbCA9ICdibGFjaycpKSArDQogIGdlb21fcG9pbnQoZGF0YSA9IHRvcF8xMCwgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUHJpY2UsIGNvbCA9IE1ha2UpKSArIA0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gbWFrZV9jb2xvcnMpKw0KICB4bGFiKCJCYXR0ZXJ5IENhcGFjaXR5IChrV2gpIikgKyANCiAgeWxhYigiUHJpY2UgaW4gR2VybWFueSAoZXVyb3MpICIpICsNCiAgZ2d0aXRsZSgnRWxlY3RyaWMgVmVoaWNsZSBCYXR0ZXJ5IHZzLiBQcmljZSAobWFrZXMgd2l0aCAxMCsgTW9kZWxzIEhpZ2hsaWdodGVkKScpICsNCiAgbGFicyhmaWxsPSIiKSArDQogIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzPWMoJ090aGVyJykpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gImJvdHRvbSIpDQoNCkJhdHZQcmljZQ0KDQpnZ3NhdmUoJ0JhdHZQcmljZS5wbmcnLCB3aWR0aCA9IDEwKQ0KDQplY2Fycw0KYGBgDQpgYGB7cn0NCmdnYXJyYW5nZShhLCBiLCBjLCBkLCANCiAgICAgICAgICBsYWJlbHMgPSBjKCJBIiwgIkIiLCAiQyIsICJEIiksDQogICAgICAgICAgbmNvbCA9IDIsIG5yb3cgPSAyKQ0KYGBgDQoNCg0KYGBge3J9DQpCYXR2UmFuZ2UgPSBnZ3Bsb3QoTlVMTCwgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUmFuZ2UpKSArDQogIGdlb21fcG9pbnQoZGF0YSA9IGVjYXJzLCBhZXMoeCA9IEJhdHRlcnksIHkgPSBSYW5nZSwgZmlsbCA9ICdibGFjaycpKSArDQogIGdlb21fcG9pbnQoZGF0YSA9IHRvcF8xMCwgYWVzKHggPSBCYXR0ZXJ5LCB5ID0gUmFuZ2UsIGNvbCA9IE1ha2UpKSArIA0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gbWFrZV9jb2xvcnMpKw0KICB4bGFiKCJCYXR0ZXJ5IENhcGFjaXR5IChrV2gpIikgKyANCiAgeWxhYigiUmFuZ2UgKGttIG9uIG9uZSBjaGFyZ2UpICIpICsNCiAgZ2d0aXRsZSgnRWxlY3RyaWMgVmVoaWNsZSBCYXR0ZXJ5IHZzLiBSYW5nZSAobWFrZXMgd2l0aCAxMCsgTW9kZWxzIEhpZ2hsaWdodGVkKScpICsNCiAgbGFicyhmaWxsPSIiKSArDQogIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzPWMoJ090aGVyJykpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gImJvdHRvbSIpDQoNCg0KQWNjdlByaWNlID0gZ2dwbG90KE5VTEwsIGFlcyh4ID0gQWNjZWxlcmF0aW9uLCB5ID0gUHJpY2UpKSArDQogIGdlb21fcG9pbnQoZGF0YSA9IGVjYXJzLCBhZXMoeCA9IEFjY2VsZXJhdGlvbiwgeSA9IFByaWNlLCBmaWxsID0gJ2JsYWNrJykpICsNCiAgZ2VvbV9wb2ludChkYXRhID0gdG9wXzEwLCBhZXMoeCA9IEFjY2VsZXJhdGlvbiwgeSA9IFByaWNlLCBjb2wgPSBNYWtlKSkgKyANCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IG1ha2VfY29sb3JzKSsNCiAgeGxhYigiQWNjZWxlcmF0aW9uIChzZWNvbmRzIHRvIDEwMCBrbS9ocikiKSArIA0KICB5bGFiKCJQcmljZSBpbiBHZXJtYW55IChldXJvcykgIikgKw0KICBnZ3RpdGxlKCdBY2NlbGVyYXRpb24gdnMuIFByaWNlIChtYWtlcyB3aXRoIDEwKyBNb2RlbHMgSGlnaGxpZ2h0ZWQpJykgKw0KICBsYWJzKGZpbGw9IiIpICsNCiAgeGxpbSgyLDE1KSsNCiAgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHM9YygnT3RoZXInKSkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiYm90dG9tIikNCg0KQmF0dlJhbmdlDQpCYXR2UHJpY2UNCkFjY3ZQcmljZQ0KYGBgDQoNCg0KDQoNCmBgYHtyfQ0KdW5pcXVlKGVjYXJzJE1ha2UpDQp1bmlxdWUoZWNhcnNfbWlzc2luZ19wcmljZSRNYWtlKQ0KDQpsZW5ndGgodW5pcXVlKGVjYXJzJE1ha2UpKQ0KbGVuZ3RoKHVuaXF1ZShlY2Fyc19taXNzaW5nX3ByaWNlJE1ha2UpKQ0KDQplY2Fyc19taXNzaW5nX3ByaWNlDQpgYGANCg0KYGBge3J9DQplY2Fycw0KcGxvdChlY2Fyc1ssNDoxMF0sIG1haW4gPSAnQ29tcGFyaXNvbiBvZiBhbGwgUXVhbnRpdGl2ZSBGZWF0dXJlcycpDQpwbG90KGVjYXJzJEFjY2VsZXJhdGlvbiwgZWNhcnMkQmF0dGVyeSkNCg0KZWNhcnMkUHJpY2VfcG93ID0gKGVjYXJzJFByaWNlICoqIC0uNSkNCmVjYXJzJFNwZWVkX3BvdyA9IChlY2FycyRUb3Bfc3BlZWQgKiogLjI1KQ0KZWNhcnMkRWZmaWNpZW5jeV9wb3cgPSAoZWNhcnMkRWZmaWNpZW5jeSAqKiAuMjUpDQpzdW1tYXJ5KGVjYXJzKQ0Kc2FwcGx5KGVjYXJzLCBzZCkNCmhpc3QoZWNhcnMkUHJpY2UpIA0KaGlzdChlY2FycyRQcmljZV9wb3cpIA0KaGlzdChlY2FycyRFZmZpY2llbmN5KQ0KaGlzdChlY2FycyRQcmljZV9wb3cpDQplY2Fycw0KYGBgDQpDb2xpbmVhcml0eSB3aXRoIHByZWRpY3RpbmcgUmFuZ2UgYmFzZWQgbiBiYXR0ZXJ5DQoNCmBgYHtyfQ0KZWNhcnMgJT4lIGdyb3VwX2J5KE1ha2UpICU+JQ0KICBmaWx0ZXIobigpID49IDEwKSAlPiVvDQogIGdncGxvdCguLCBhZXMoeCA9IEJhdHRlcnksIHkgPSBQcmljZSkpICsNCiAgDQpgYGANCg0KYGBge3J9DQoNClJCbW9kZWwgPSBsbShSYW5nZSB+ICBCYXR0ZXJ5LCBkYXRhID0gZWNhcnMpDQpzdW1tYXJ5KFJCbW9kZWwpDQpwbG90KFJCbW9kZWwpIA0KDQpQQm1vZGVsID0gbG0oUHJpY2UgfiAgQmF0dGVyeSwgZGF0YSA9IGVjYXJzKQ0Kc3VtbWFyeShQQm1vZGVsKQ0KcGxvdChQQm1vZGVsKSANCg0KQVRtb2RlbCA9IGxtKFRvcF9zcGVlZCB+IEFjY2VsZXJhdGlvbiwgZGF0YSA9IGVjYXJzKQ0Kc3VtbWFyeShBVG1vZGVsKQ0KcGxvdChBVG1vZGVsKQ0KDQptb2RlbCA9IGxtKFByaWNlX3BvdyB+IEVmZmljaWVuY3lfcG93ICsgUmFuZ2UgKyBTcGVlZF9wb3cgKyBGYXN0X2NoYXJnZSwgZGF0YSA9IGVjYXJzKQ0Kc3VtbWFyeShtb2RlbCkgDQpwbG90KG1vZGVsKQ0KDQojYmF0dGVyeSBzcGVlZF9wb3cgZWZmaWNpZW5jeSBhbmQgZmFzdCBjaGFyZ2UgDQoNCmBgYA0KV2l0aCB0cmFuc2Zvcm1hdGlvbiBkb25lIHRvIHByaWNlIA0KYGBge3J9DQplY2Fyc19taXNzaW5nX3ByaWNlJFNwZWVkX3BvdyA9IChlY2Fyc19taXNzaW5nX3ByaWNlJFRvcF9zcGVlZCAqKiAuMjUpDQplY2Fyc19taXNzaW5nX3ByaWNlJEVmZmljaWVuY3lfcG93ID0gKGVjYXJzX21pc3NpbmdfcHJpY2UkRWZmaWNpZW5jeSAqKiAuMjUpDQp0ZXN0ID0gcHJlZGljdChtb2RlbCwgZWNhcnNfbWlzc2luZ19wcmljZSwgaW50ZXJ2YWwgPSAncHJlZGljdGlvbicpDQp0ZXN0XzJfZG9sbGFycyA9ICgxLyh0ZXN0KSleMg0KZWNhcnNfbWlzc2luZ19wcmljZQ0KdGVzdF8yX2RvbGxhcnMNCmVjYXJzX21pc3NpbmdfcHJpY2UkcHJlZGljdGVkX3ByaWNlID0gKHRlc3RfMl9kb2xsYXJzWywxXSkNCmVjYXJzX21pc3NpbmdfcHJpY2UNCmBgYA0KYGBge3J9DQp0ZXN0MiA9IHByZWRpY3QobW9kZWwsIGVjYXJzLCBpbnRlcnZhbCA9ICdwcmVkaWN0aW9uJykNCnRlc3QzID0gcHJlZGljdChtb2RlbCwgZWNhcnMsIGludGVydmFsID0gJ2NvbmZpZGVuY2UnKQ0KdGVzdDJfMl9kb2xsYXJzID0gKDEvKHRlc3QyKSleMg0KdGVzdDNfMl9kb2xsYXJzID0gKDEvKHRlc3QzKSleMg0KdGVzdDJfMl9kb2xsYXJzDQp0ZXN0M18yX2RvbGxhcnMNCnRlc3QyXzJfZG9sbGFyc25ldyA9IGRhdGEuZnJhbWUoTmFtZSA9IGVjYXJzJENhcl9uYW1lLA0KICAgICAgICAgICAgICAgICBNYWtlID0gZWNhcnMkTWFrZSwNCiAgICAgICAgICAgICAgICAgUHJpY2UgPSBlY2FycyRQcmljZS8xMDAwLCANCiAgICAgICAgICAgICAgICAgUHJlZGljdGVkX3ByaWNlID0gKHRlc3QyXzJfZG9sbGFyc1ssMV0vMTAwMCksDQogICAgICAgICAgICAgICAgIFByZWRpY3RlZF9wcmljZV9sd3IgPSAodGVzdDJfMl9kb2xsYXJzWywyXS8xMDAwKSwNCiAgICAgICAgICAgICAgICAgUHJlZGljdGVkX3ByaWNlX3VwciA9ICh0ZXN0Ml8yX2RvbGxhcnNbLDNdLzEwMDApLA0KICAgICAgICAgICAgICAgICBDb25maWRlbmNlX3ByaWNlX2x3ciA9ICh0ZXN0M18yX2RvbGxhcnNbLDJdLzEwMDApLA0KICAgICAgICAgICAgICAgICBDb25maWRlbmNlX3ByaWNlX3VwciA9ICh0ZXN0M18yX2RvbGxhcnNbLDNdKS8xMDAwKQ0KdGVzdDJfMl9kb2xsYXJzbmV3DQpgYGANCmBgYHtyfQ0KIyBjYXJzIGdyb3VwcyBieSBicmFuZHMgd2l0aCB0aGUgbW9zdCBtb2RlbHMNCg0KbW9zdF9tYWtlcyA9IHRlc3QyXzJfZG9sbGFyc25ldyAlPiUgZ3JvdXBfYnkoTWFrZSkgJT4lDQogIGZpbHRlcihuKCkgPj0gMTApICU+JQ0KICBzdW1tYXJpc2UoYXZlcmFnZV9jb3N0ID0gKG1lYW4oUHJpY2UpKSwgYXZlcmFnZV9wcmVkaWN0ZWRfY29zdCA9IChtZWFuKFByZWRpY3RlZF9wcmljZSkpKQ0KYGBgDQoNCmBgYHtyfQ0KZWNhcnMNCg0KYGBgDQoNCg0KYGBge3J9DQoNCg0KZ3BsdDEgPSBnZ3Bsb3QoTlVMTCwgYWVzKFByZWRpY3RlZF9wcmljZSwgUHJpY2UpKSArDQogICAgICBnZW9tX2xpbmUoZGF0YSA9IHRlc3QyXzJfZG9sbGFyc25ldywgYWVzKHggPSBQcmVkaWN0ZWRfcHJpY2UsIHkgPSBQcmVkaWN0ZWRfcHJpY2UpKSArDQogICAgICBnZW9tX2xpbmUoZGF0YSA9IHRlc3QyXzJfZG9sbGFyc25ldywgYWVzKHggPSBQcmVkaWN0ZWRfcHJpY2UsIHkgPSBQcmVkaWN0ZWRfcHJpY2VfbHdyKSwgY29sID0gJ3JlZCcpICsNCiAgICAgIGdlb21fbGluZShkYXRhID0gdGVzdDJfMl9kb2xsYXJzbmV3LCBhZXMoeCA9IFByZWRpY3RlZF9wcmljZSwgeSA9IFByZWRpY3RlZF9wcmljZV91cHIpLCBjb2wgPSAncmVkJykgKw0KICAgICAgZ2VvbV9saW5lKGRhdGEgPSB0ZXN0Ml8yX2RvbGxhcnNuZXcsIGFlcyh4ID0gUHJlZGljdGVkX3ByaWNlLCB5ID0gQ29uZmlkZW5jZV9wcmljZV9sd3IpLCBjb2wgPSAnYmx1ZScpICsNCiAgICAgIGdlb21fbGluZShkYXRhID0gdGVzdDJfMl9kb2xsYXJzbmV3LCBhZXMoeCA9IFByZWRpY3RlZF9wcmljZSwgeSA9IENvbmZpZGVuY2VfcHJpY2VfdXByKSwgY29sID0gJ2JsdWUnKSArDQogICAgICB5bGltKDAsMjUwKSsgDQpnZW9tX3BvaW50KGRhdGEgPSB0ZXN0Ml8yX2RvbGxhcnNuZXcsIGFlcyh4ID0gUHJlZGljdGVkX3ByaWNlLCB5ID0gUHJpY2UpLCBhbHBoYSA9IC41KSArDQpnZW9tX3BvaW50KGRhdGEgPSBtb3N0X21ha2VzLCBhZXMoeCA9IGF2ZXJhZ2VfcHJlZGljdGVkX2Nvc3QsIHkgPSBhdmVyYWdlX2Nvc3QpLCBzaXplID0gMywgc2hhcGUgPSAyMywgZmlsbCA9IG1ha2VfY29sb3JzKSArDQogc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IG1ha2VfY29sb3JzKQ0KDQpncGx0MQ0KDQpnZ3NhdmUoJ2dwbHQxLnBuZycsIHdpZHRoID0gMTUpDQogICAgICAgICANCmBgYA0KYGBge3J9DQpncGx0MSA9IGdncGxvdChOVUxMLCBhZXMoUHJlZGljdGVkX3ByaWNlLCBQcmljZSkpICsNCiAgICAgIGdlb21fbGluZShkYXRhID0gdGVzdDJfMl9kb2xsYXJzbmV3LCBhZXMoeCA9IFByZWRpY3RlZF9wcmljZSwgeSA9IFByZWRpY3RlZF9wcmljZSkpICsNCiAgICAgIGdlb21fbGluZShkYXRhID0gdGVzdDJfMl9kb2xsYXJzbmV3LCBhZXMoeCA9IFByZWRpY3RlZF9wcmljZSwgeSA9IFByZWRpY3RlZF9wcmljZV9sd3IpLCBjb2wgPSAncmVkJykgKw0KICAgICAgZ2VvbV9saW5lKGRhdGEgPSB0ZXN0Ml8yX2RvbGxhcnNuZXcsIGFlcyh4ID0gUHJlZGljdGVkX3ByaWNlLCB5ID0gUHJlZGljdGVkX3ByaWNlX3VwciksIGNvbCA9ICdyZWQnKSArDQogICAgICBnZW9tX2xpbmUoZGF0YSA9IHRlc3QyXzJfZG9sbGFyc25ldywgYWVzKHggPSBQcmVkaWN0ZWRfcHJpY2UsIHkgPSBDb25maWRlbmNlX3ByaWNlX2x3ciksIGNvbCA9ICdibHVlJykgKw0KICAgICAgZ2VvbV9saW5lKGRhdGEgPSB0ZXN0Ml8yX2RvbGxhcnNuZXcsIGFlcyh4ID0gUHJlZGljdGVkX3ByaWNlLCB5ID0gQ29uZmlkZW5jZV9wcmljZV91cHIpLCBjb2wgPSAnYmx1ZScpICsNCiAgICAgIHlsaW0oMCwyNTApKyANCiAgICAgIGdlb21fcG9pbnQoZGF0YSA9IHRlc3QyXzJfZG9sbGFyc25ldywgYWVzKHggPSBQcmVkaWN0ZWRfcHJpY2UsIHkgPSBQcmljZSksIGFscGhhID0gLjUpICsNCiAgICAgIGdlb21fcG9pbnQoZGF0YSA9IG1vc3RfbWFrZXMsIGFlcyh4ID0gYXZlcmFnZV9wcmVkaWN0ZWRfY29zdCwgeSA9IGF2ZXJhZ2VfY29zdCksIHNpemUgPSAzLCBzaGFwZSA9IDIzLCBmaWxsID0gbWFrZV9jb2xvcnMpICsNCiAgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBtYWtlX2NvbG9ycykNCg0KYGBgDQoNCmBgYHtyfQ0KdGVzdDJfMl9kb2xsYXJzbmV3ICU+JQ0KICBhcnJhbmdlKFByZWRpY3RlZF9wcmljZSkNCmBgYA0KYGBge3J9DQplY2Fycw0KcGxvdF9seSgNCiAgZGF0YSA9IGVjYXJzX21ha2UsDQogIHggPSB+UHJpY2UsDQogIHR5cGUgPSAiYm94IiwNCiAgdGV4dCA9IH5DYXJfbmFtZSwNCiAgdG9vbHRpcCA9IGMoIngiLCAidGV4dCIpDQopDQoNCnBsb3RfbHkoDQogIGRhdGEgPSBlY2Fyc19tYWtlLA0KICB4ID0gflByaWNlLA0KICB5ID0gfk1ha2UsDQogIHR5cGUgPSAiYm94IiwNCiAgY29sb3IgPSB+TWFrZSwNCiAgY29sb3JzID0gbWFrZV9jb2xvcnMsDQogIHRleHQgPSB+Q2FyX25hbWUsDQogIHRvb2x0aXAgPSBjKCJ4IiwgInRleHQiKSwNCiAgc2hvd2xlZ2VuZCA9IEZBTFNFDQopDQpgYGANCg0KYGBge3J9DQpvcHRpb25zKHJlcHIucGxvdC53aWR0aCA9IDE1LCByZXByLnBsb3QuaGVpZ2h0ID0yKSANCg0KZ2dwbG90KGRhdGEgPSB0ZXN0Ml8yX2RvbGxhcnNuZXcsIGFlcyh4ID0gUHJlZGljdGVkX3ByaWNlLCB5ID0gUHJpY2UpKSArDQogIGdlb21fcG9pbnQoKSArDQogIGdlb21fbGluZShhZXMoeCA9IFByZWRpY3RlZF9wcmljZSwgeSA9IFByZWRpY3RlZF9wcmljZSkpICsNCiAgZ2VvbV9saW5lKGFlcyh4ID0gUHJlZGljdGVkX3ByaWNlLCB5ID0gUHJlZGljdGVkX3ByaWNlX2x3ciksIGNvbCA9ICdyZWQnKSArDQogIGdlb21fbGluZShhZXMoeCA9IFByZWRpY3RlZF9wcmljZSwgeSA9IFByZWRpY3RlZF9wcmljZV91cHIpKSArDQogIGdlb21fbGluZShhZXMoeCA9IFByZWRpY3RlZF9wcmljZSwgeSA9IENvbmZpZGVuY2VfcHJpY2VfbHdyKSkgKw0KICBnZW9tX2xpbmUoYWVzKHggPSBQcmVkaWN0ZWRfcHJpY2UsIHkgPSBDb25maWRlbmNlX3ByaWNlX3VwcikpICMrDQogZ2VvbV9wb2ludChhZXMoeCA9IG1vc3RfbWFrZXMkYXZlcmFnZV9jb3N0LCB5ID1tb3N0X21ha2VzJGF2ZXJhZ2VfcHJlZGljdGVkX2Nvc3QpKQ0KDQoNCiAgDQpuZXcNCmBgYA0KDQoNCmBgYHtyfQ0KbmV3DQpuZXcgJT4lIGdyb3VwX2J5KE1ha2UpICU+JQ0KICBmaWx0ZXIobigpID49IDEwKSAlPiUNCiAgc3VtbWFyaXNlKGF2ZXJhZ2VfY29zdCA9IChtZWFuKFByaWNlKS8xMDAwKSwgYXZlcmFnZV9wcmVkaWN0ZWRfY29zdCA9IChtZWFuKFByZWRpY3RlZF9wcmljZSkvMTAwMCkpICMlPiUNCiAgI2dncGxvdCguLCBhZXMoeCA9IE1ha2UsIHkgPSBhdmVyYWdlX3ByZWRpY3RlZF9jb3N0KSkgKw0KICAjZ2VvbV9jb2woYWVzKGZpbGwgPSBNYWtlKSkgKyANCiAgI3lsYWIoJ0F2ZXJhZ2UgY29zdCBpbiBHZXJtYW55IGluIHRob3VzYW5kcyBvZiBFcnVyb3MnKSsNCiAgI3RoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCksDQogICAjICAgICBheGlzLnRleHQueD1lbGVtZW50X2JsYW5rKCksDQogICAgIyAgICBheGlzLnRpY2tzLng9ZWxlbWVudF9ibGFuaygpKQ0KYGBgDQpgYGB7cn0NCm5ldyAlPiUgZ3JvdXBfYnkoTWFrZSkgJT4lDQogIGZpbHRlcihuKCkgPj0gMTApICU+JQ0KICBzdW1tYXJpc2UoYXZlcmFnZV9wcmljZSA9IChtZWFuKFByaWNlKS8xMDAwKSwgYXZlcmFnZV9wcmVkaWN0ZWRfcHJpY2UgPSAgKG1lYW4oUHJlZGljdGVkX3ByaWNlKS8xMDAwKSklPiUNCiAgZ2dwbG90KC4sIGFlcyh4ID0gYXZlcmFnZV9wcmVkaWN0ZWRfcHJpY2UsIHkgPSBhdmVyYWdlX3ByaWNlKSkgKw0KICBnZW9tX3BvaW50KGFlcyhjb2xvciA9IE1ha2UpLCBzaXplID00KSANCiAgDQpgYGANCg0KDQoNCmBgYHtyfQ0KbmV3DQpuZXcgJT4lIGdyb3VwX2J5KE1ha2UpICU+JQ0KICBmaWx0ZXIobigpID49IDEwKSAlPiUNCiAgc3VtbWFyaXNlKGF2ZXJhZ2VfcHJpY2UgPSAobWVhbihQcmljZSkvMTAwMCksIGF2ZXJhZ2VfcHJlZGljdGVkX3ByaWNlID0gKG1lYW4oUHJlZGljdGVkX3ByaWNlKS8xMDAwKSklPiUNCiAgZ2dwbG90KC4sIGFlcyh4ID0gYXZlcmFnZV9wcmVkaWN0ZWRfcHJpY2UsIHkgPSBhdmVyYWdlX3ByaWNlKSkgKw0KICBnZW9tX3BvaW50KGFlcyhjb2xvciA9IE1ha2UpLCBzaXplID00KSArDQogIGdlb21fbGluZShhZXMoeCA9IGF2ZXJhZ2VfcHJlZGljdGVkX3ByaWNlLCB5ID0gYXZlcmFnZV9wcmVkaWN0ZWRfcHJpY2UpKSArIA0KDQoNCmBgYA0KDQpgYGB7cn0NCnByZWRpY3QobW9kZWwsIG5ld2RhdGEsIGludGVydmFsID0gJ2NvbmZpZGVuY2UnKQ0KcHJlZGljdChtb2RlbCwgbmV3ZGF0YSwgaW50ZXJ2YWwgPSAncHJlZGljdGlvbicpDQpgYGANCg0KDQpgYGB7cn0NCm5ldw0KbmV3ICU+JSBncm91cF9ieShNYWtlKSAlPiUNCiAgZmlsdGVyKG4oKSA+PSAxMCkgJT4lDQogIHN1bW1hcmlzZShhdmVyYWdlX3ByaWNlID0gKG1lYW4oUHJpY2UpLzEwMDApLCBhdmVyYWdlX3ByZWRpY3RlZF9wcmljZSA9IChtZWFuKFByZWRpY3RlZF9wcmljZSkvMTAwMCkpDQpgYGANCg0KYGBge3J9DQplY2Fyc19taXNzaW5nX3ByaWNlDQpwcmUNCmBgYA0KDQoNCmBgYHtyfQ0KbW9kZWwNCmBgYA0KYGBge3J9DQplY2Fycw0KYGBgDQoNCg0KYGBge3J9DQptb2RlbC5lbXB0eSA9IGxtKFByaWNlX3BvdyB+IDEsIGRhdGEgPSBlY2FycykNCm1vZGVsLmZ1bGwgPSBsbShQcmljZV9wb3cgfiBFZmZpY2llbmN5X3BvdyArIFJhbmdlICsgQmF0dGVyeSArIFNwZWVkX3BvdyArIEZhc3RfY2hhcmdlICsgQWNjZWxlcmF0aW9uLCBkYXRhID0gZWNhcnMpDQpzY29wZSA9IGxpc3QobG93ZXIgPSBmb3JtdWxhKG1vZGVsLmVtcHR5KSwgdXBwZXIgPSBmb3JtdWxhKG1vZGVsLmZ1bGwpKQ0Kc2NvcGUNCmZvcndhcmRBSUMgPSBzdGVwKG1vZGVsLmVtcHR5LCBzY29wZSwgZGlyZWN0aW9uID0gJ2ZvcndhcmQnLCBrID0gMikNCmBgYA0KDQpiYXR0ZXJ5IHNwZWVkX3BvdyBlZmZpY2llbmN5IGFuZCBmYXN0IGNoYXJnZSANCg0KYGBge3J9DQptb2RlbC5lbXB0eTIgPSBsbShQcmljZSB+IDEsIGRhdGEgPSBlY2FycykNCm1vZGVsLmZ1bGwyID0gbG0oUHJpY2UgfiBFZmZpY2llbmN5ICsgUmFuZ2UgKyBCYXR0ZXJ5ICsgVG9wX3NwZWVkICsgRmFzdF9jaGFyZ2UgKyBBY2NlbGVyYXRpb24sIGRhdGEgPSBlY2FycykNCnNjb3BlMiA9IGxpc3QobG93ZXIgPSBmb3JtdWxhKG1vZGVsLmVtcHR5MiksIHVwcGVyID0gZm9ybXVsYShtb2RlbC5mdWxsMikpDQpzY29wZTINCmZvcndhcmRBSUMyID0gc3RlcChtb2RlbC5lbXB0eTIsIHNjb3BlMiwgZGlyZWN0aW9uID0gJ2ZvcndhcmQnLCBrID0gMikNCmBgYA0KDQoNCmBgYHtyfQ0KbW9kZWwuZW1wdHkzID0gbG0oUHJpY2VfcG93IH4gMSwgZGF0YSA9IGVjYXJzKQ0KbW9kZWwuZnVsbDMgPSBsbShQcmljZV9wb3cgfiBFZmZpY2llbmN5ICsgUmFuZ2UgKyBCYXR0ZXJ5ICsgVG9wX3NwZWVkICsgRmFzdF9jaGFyZ2UgKyBBY2NlbGVyYXRpb24sIGRhdGEgPSBlY2FycykNCnNjb3BlMyA9IGxpc3QobG93ZXIgPSBmb3JtdWxhKG1vZGVsLmVtcHR5MyksIHVwcGVyID0gZm9ybXVsYShtb2RlbC5mdWxsMykpDQpmb3J3YXJkQUlDMyA9IHN0ZXAobW9kZWwuZW1wdHkzLCBzY29wZTMsIGRpcmVjdGlvbiA9ICdmb3J3YXJkJywgayA9IDIpDQpgYGANCkknbSBnZXR0aW5nIGEgbG93ZXIgQUlDIHdoZW4gSSBydW4gdGhlc2Ugd2l0aG91dCB0cmFuc2Zvcm1pbmcgdGhlbT8/PyBJIG5lZWQgdG8gdHJhbnNmb3JtIHByaWNlIGJ1dCBub3QgdGhlIG90aGVycz8/IG5vdCBzdXJlIHdoYXQgdG8gZG8/PyANCg0KYGBge3J9DQptb2RlbC5lbXB0eSA9IGxtKFByaWNlX3BvdyB+IDEsIGRhdGEgPSBlY2FycykNCm1vZGVsLmZ1bGwgPSBsbShQcmljZV9wb3cgfiBFZmZpY2llbmN5X3BvdyArIFJhbmdlICsgQmF0dGVyeSArIFNwZWVkX3BvdyArIEZhc3RfY2hhcmdlICsgQWNjZWxlcmF0aW9uLCBkYXRhID0gZWNhcnMpDQpzY29wZSA9IGxpc3QobG93ZXIgPSBmb3JtdWxhKG1vZGVsLmVtcHR5KSwgdXBwZXIgPSBmb3JtdWxhKG1vZGVsLmZ1bGwpKQ0Kc2NvcGUNCmZvcndhcmRBSUMgPSBzdGVwKG1vZGVsLmVtcHR5LCBzY29wZSwgZGlyZWN0aW9uID0gJ2ZvcndhcmQnLCBrID0gMikNCmBgYA0KDQpgYGB7cn0NCmJyb29tOjpnbGFuY2UobW9kZWwpDQpicm9vbTo6Z2xhbmNlKG1vZGVsLmZ1bGwpDQptb2RlbF9iZXN0ID0gbG0oUHJpY2VfcG93IH4gRWZmaWNpZW5jeV9wb3cgKyBSYW5nZSArIEJhdHRlcnkgKyBTcGVlZF9wb3cgKyBGYXN0X2NoYXJnZSwgZGF0YSA9IGVjYXJzKQ0KYnJvb206OmdsYW5jZShtb2RlbC5mdWxsMykNCmJyb29tOjpnbGFuY2UobW9kZWxfYmVzdCkNCmBgYA0KDQoNCmBgYHtyfQ0KZWNhcnMNCm1vZGVsX2JveCA9IGxtKFByaWNlIH4gVG9wX3NwZWVkICsgUmFuZ2UgKyBFZmZpY2llbmN5ICsgRmFzdF9jaGFyZ2UgKyBBY2NlbGVyYXRpb24sIGRhdGEgPSBlY2FycykNCnN1bW1hcnkobW9kZWxfYm94KQ0KDQpgYGANCmBgYHtyfQ0KYmMgPSBib3hDb3gobW9kZWxfYm94KQ0KDQpsYW1iZGEgPSBiYyR4W3doaWNoKGJjJHkgPT0gbWF4KGJjJHkpKV0NCmxhbWJkYQ0KUHJpY2UuYmMgPSAoZWNhcnMkUHJpY2VebGFtYmRhIC0gMSkvbGFtYmRhDQpQcmljZS5iYw0KbW9kZWwuYmMgPSBsbShQcmljZS5iYyB+IFRvcF9zcGVlZCArIFJhbmdlICsgRWZmaWNpZW5jeSArIEZhc3RfY2hhcmdlICsgQWNjZWxlcmF0aW9uLCBkYXRhID0gZWNhcnMpDQogICAgICAgICAgICAgIA0Kc3VtbWFyeShtb2RlbC5iYykNCmJyb29tOjpnbGFuY2UobW9kZWwuYmMpDQoNCmhpc3QoUHJpY2UuYmMpDQpgYGANCioqKipUaGlzIGlzIGhvdyB0byB1bmRvIHRoZSBsYW1iZGEgdHJhbnNmb3JtYXRpb24NCmBgYHtyfQ0KKChQcmljZS5iYypsYW1iZGEpICsgMSleKDEvbGFtYmRhKQ0KZWNhcnMkUHJpY2UNCmBgYA0KDQoNCmBgYHtyfQ0KcGxvdC5uZXcoKQ0KcGxvdCggeCA9IDUwLCB5ID0gNTQpDQpsaW5lcyhwcmVkaWN0ZWRfcHJpY2UkUHJlZGljdGVkLCBwcmVkaWN0ZWRfcHJpY2UkUHJlZGljdGVkKQ0KYGBgDQoNCmBgYHtyfQ0KZWNhcnNfbWlzc2luZ19wcmljZQ0KYGBgDQoNCg0KDQoNCg0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KQWRkIGEgbmV3IGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqSW5zZXJ0IENodW5rKiBidXR0b24gb24gdGhlIHRvb2xiYXIgb3IgYnkgcHJlc3NpbmcgKkN0cmwrQWx0K0kqLg0KDQpXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkN0cmwrU2hpZnQrSyogdG8gcHJldmlldyB0aGUgSFRNTCBmaWxlKS4NCg0KVGhlIHByZXZpZXcgc2hvd3MgeW91IGEgcmVuZGVyZWQgSFRNTCBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZWRpdG9yLiBDb25zZXF1ZW50bHksIHVubGlrZSAqS25pdCosICpQcmV2aWV3KiBkb2VzIG5vdCBydW4gYW55IFIgY29kZSBjaHVua3MuIEluc3RlYWQsIHRoZSBvdXRwdXQgb2YgdGhlIGNodW5rIHdoZW4gaXQgd2FzIGxhc3QgcnVuIGluIHRoZSBlZGl0b3IgaXMgZGlzcGxheWVkLg0K